0

初心者からアンギュラーまで。

リストがありlist1 = ["item1"]ます。

リスト全体をラベルにバインドしたかったのです。つまり: <label> {{list1}} </label>. これは出力されます["item1"]。安っぽく見えたので、ng-bind を使ってみました。<label ng-bind = "list1"> </label>. これにより、出力が表示されませんでした(空白のラベル)。なぜこれがうまくいかなかったのですか?

2回目の試行で、これを行いました<label ng-bind = "list1[0]">。これはうまくいきました!! なんで?

今、私はそれで ng-model を試してみたかった. <label ng-model = "list1"> </label>. 動作しませんでした。それから私は試しました<label ng-model = "list1[0]">。運が悪い...うーん!私はこのシナリオについてまったく理解できません

ng-bind と ng-model の違いを見つけようとしました。ここでこれを見つけました。その答えが有効な場合、なぜ <label ng-bind = "list1"> </label> 等しくない <label> {{list1}} </label>のですか?

4

1 に答える 1

1

{{list1}} を実行すると、たまたま配列である変数全体を双方向でバインドしているため、そのように表示されます。あなたができる

{{list1[0]}}

同じ効果を得たい場合

そして ng-bind の場合 - ドキュメント自体から

ngBind 属性は、指定された HTML 要素のテキスト コンテンツを特定の式の値に置き換え、その式の値が変更されたときにテキスト コンテンツを更新するように Angular に指示します。

したがって、バインドしたもののテキストコンテンツを値に置き換えます。文字列の配列があるため、文字列を引き出します。

ここで例を確認してください - http://jsfiddle.net/U3pVM/16563/

最初の {{}} 式はオブジェクト全体を出力し、2 番目は配列内の項目をインデックスで指定し、3 番目は配列内の各項目をテキスト (カンマ区切り) として出力します。

変数が次のような文字列だった場合、最後のコメントを追加するだけです

$scope.list1 = "list1"

次に、ng-bind と {{}} の間で同じ効果が得られます

于 2015-06-22T01:10:45.640 に答える