0

私はこのplunkrを見ていますが、信じられません。検索文字列に一致する名前を持つpeople人が配列に存在する場合、その人がドロップダウンに表示され、そうでない場合は、この文字列が示す新しい人を作成することが提案されることがわかり(new)ます。しかし、表示する要素をどのように決定するのでしょうか? これら2つの条件付きで表示/非表示のdivが原因のようですよね?

<div ng-if="person.isTag" ng-bind-html="person.name +' <small>(new)</small>'| highlight: $select.search"></div>
<div ng-if="!person.isTag" ng-bind-html="person.name + person.isTag| highlight: $select.search"></div>

しかし、待って、これは何ですか?? Person オブジェクトには isTag プロパティがありませんか? では見えませんdemo.jsこれはどのように機能しますか?この不思議なisTag旗はどこから来ているのですか?どうか、気が狂いそうです。

また、なぜperson.nameブール値(ブール値だと思います)と連結するのperson.isTagですか?ちなみに、この例は、angularjs select2 のドキュメント ページで見つけたものをフォークしたもので、他のすべての例を取り除いただけです。 これはオリジナルプランカー

ここに画像の説明を入力

4

2 に答える 2

1

プロパティはのisTagから来て$select.searchInput.on('keyup', function(e) {SelectMultipleDirectiveます。multipleコードから削除すると、このプロパティは設定されないことに注意してください。

https://github.com/angular-ui/ui-select/blob/master/src/uiSelectMultipleDirective.js#L252

于 2015-03-23T19:46:43.017 に答える
1

personオブジェクトに が含まれている場合isTag、接尾辞を付けて名前をレンダリングし"(new)"ます。

isTagテンプレートは基本的に、プロパティを使用して、または使用せずにオブジェクトをレンダリングする方法を定義します。

最初のテンプレート (レンダリングが制御される) は、プロパティが定義され、真実であるng-if="person.isTag"場合にレンダリングされます。isTag

は、次によって定義されるオブジェクトisTagのプロパティを参照します。person

<ui-select-choices repeat="person in people">
于 2015-03-23T18:59:39.430 に答える