angular2のhtml要素でモデルにアクセスする必要があります。私の場合、ng2-dragulaを使用してドラッグアンドドロップを実行し、そのサービスはドラッグされるhtml要素にのみアクセスできます。そして、要素の対応するモデルを更新する必要があります。問題はgithubにあります。angular2のhtml要素でモデルを取得
答えて
ngForが配列からコンパイルされている場合は、bag要素にdragulaModel属性を設定してモデルを提供する必要があります。あなたが項目位置を直すたび
<ul [dragula]='"bag-one"' [dragulaModel]='items'> <li *ngFor="let item of items"></li> </ul>
そして、モデルが同期されます。あなたのコンポーネントでは、これを行うことで、簡単に更新されたモデルを得ることができます。
this.dragulaService.drop.subscribe((value) => {
//let [bagName, e, el] = value;
console.log(this.items);
});
モデル内のアイテムの位置が変更されていることがわかります。
移動しているアイテムを一義的に伝える方法はありませんか? – Umagon
サブスクリプションの引数で指定されたelementList
のelement
のインデックスを検索すると、商品のモデルが表示されます。
dragulaService.drop.subscribe(e => this.onDrop(e.slice(1)));
を参照してください。
UPDATE:簡素化(Draccoのおかげで)
private onDrop(args) {
let [e, el] = args; //element, elementList
let i = el.children.indexOf(e),
item = i+1? this.items[i] : null;
console.log(item); //The item
}
this.items
あなたがdragulaに渡すリストを保存変数です。 (例えば:[dragulaModel]="items"
)。
もっと簡単な方法があればいいですね。あなたがそれを見つけたら教えてください!
古い方法:
private onDrop(args) {
let [e, el] = args; //element, elementList
let item;
for(let i in el.children){
if(el.children[i]==e){
item = this.items[+i];
break;
}
}
console.log(item); //The item
}
EDIT:簡素化中にエラーが発生しました。
el.childrenは必ずES6アレイにラップしてください。
let i = el.children.indexOf(e)
let i = Array.from(el.children).indexOf(e)
にする必要があり、私も親リストからインデックスに子要素を取得するには、予期しない結果を生成し、時には新しい未定義のアイテムを生成したことがわかりました。
代替直接IDソリューション: "要素のモデル" とは、
<ion-item *ngFor="let child of children" [id]="child"></ion-item>
、その後onDrop方法で
console.log(e.id);
- 1. 作成後にhtml要素を取得
- 2. c#でHTML要素の実際のマージンを取得する
- 3. simpe-html-domで要素の内容を取得する
- 4. セレンでHTML要素のテキストを取得する方法は?
- 5. jQueryで.getが返すdiv要素のHTMLを取得
- 6. nokogiriでhtml要素を取得できますか?
- 7. Javascriptで後で追加したHTML要素IDを取得
- 8. .NETでHTML要素情報を取得する
- 9. Jqueryが要素を取得できないhtml
- 10. dom xml要素でcdata(html)を取得する
- 11. php PHP変数であるhtml要素を取得します
- 12. jQueryでHTML要素からタグを取得
- 13. djangoのHTMLテンプレートからmongodb要素のObjectIDを取得する
- 14. 要素のEventListenersを取得
- 15. 要素のスクロールトップを取得
- 16. HTML要素のIDを取得する方法は?
- 17. HTML要素の高さを取得するjQuery
- 18. html階層内の要素を取得する
- 19. jquery要素のhtml全体を取得する方法
- 20. 取得リスト要素
- 21. Awesomium ExecuteJavascriptWithResultによるhtmlドキュメント要素のnodeNameの取得方法?
- 22. SQL Serverでサブ要素のない要素を取得する
- 23. JSoupのクラスで要素を取得
- 24. jQueryでリストのインデックス要素を取得
- 25. 要素を取得し、
- 26. Python HTML - 属性別に要素を取得
- 27. エリアからhtml要素を取得する
- 28. 子から親HTML要素を取得する方法
- 29. JSF:JSFコードが存在するHTML要素IDを取得
- 30. Data :: Dumper要素の取得
あなたには、いくつかのコンポーネントのプロパティを意味するのですか?いくつかのコードが役に立ちます(Plunkerが優先)。 –
@MarkRajcokコードはgithubにあります。リンクは質問の最後です。私はこの要素を表示させるangular2モデルを意味しました。コードを確認した後に明確でない場合はお知らせください。 –
私は "HTML要素からコンポーネント"へ行く方法を知らないです - つまり、HTMLを指定すると、そのHTML要素が使用されているコンポーネントへの参照を取得する方法がわかりません...コンポーネントそのテンプレートにはHTML要素があります。 –