私のユースケースは少し異なりますが、同様の質問がこことここにあります。
uniqueLists
次のようなオブジェクトがあります。
$scope.uniqueLists - {
name: [
'string1',
'string2',
'string3'
// Lots of strings
],
Category: [
'string1',
'string2',
'string3'
// Lots of strings
],
designer: [
'string1',
'string2',
'string3'
// Lots of strings
]
}
このリストから検索機能を構築しようとしています。現在、このようにページ上のチェックボックスにすべてのリスト項目を表示できます(次のコードはJade
Node/ExpressJS のテンプレート エンジンを使用しています。慣れていなくても簡単に理解できます。 Indent == の子ノードその上の行)
div(class="searchNav")
p(ng-repeat="param in searchParams") {{param[0] + ' = ' + param[1]}}
div.row-fluid(ng-repeat="(key,val) in uniqueLists")
form(ng-model="???") {{key}}
label.checkbox(ng-repeat="value in val")
input(type="checkbox", ng-model="?????")
{{value}}
私が問題を抱えている唯一の部分はng-model
、フォームとチェックボックスです。が欲しいform
ですng-model == {{key}}
。私はそれを設定しようとしましたが、それはAngularを壊します。私も試しましng-model='uniqueLists[index][0]'
たが、Angular はこれを解析せず、すべてのフォームのモデルを string にしますuniqueLists[index][0]
。
チェックボックスと同じようinput
に、私はそれらが欲しいng-model="{{value}}"
. おそらく私のコントローラーでこれを行う方法はありますか?内部で動作するものは考えられませんng-repeat
。
この質問につまずいた人への小さなメモ
以下の回答/フィドルでわかるように、オブジェクト/位置を参照すると、DOM で正しい名前にレンダリングされませんng-model
が、Angular ではあたかもそうであるかのように動作するようです。
たとえば、上記のコードでは、設定ng-model="uniqueLists[key][val]"
すると DOM では としてレンダリングされますがng-model="uniqueLists[key][val]"
、 であるかのように動作しますng-model="uniqueLists[name][string1]"
。
Angular の奇妙な癖のようですng-model
。コントローラーに接続する前にブラウザーで名前を確認していたため、これにつまずきました。オブジェクトを解析して正しい値を取得していないことがわかったとき、そうであると想定しました。動作しています。