82

オブジェクト配列から一連のチェック ボックスを生成しようとしています。チェックボックスが ng-model を、配列に送信される新しいオブジェクトのプロパティに動的にマップすることを目指しています。

私が念頭に置いていたのは、次のようなものです

<li ng-repeat="item in items">
    <label>{{item.name}}</label>
    <input type="checkbox" ng-model="newObject.{{item.name}}">
</li>

この JSFiddle で見られるように、これは機能しません:

http://jsfiddle.net/GreenGeorge/NKjXB/2/

誰でも助けることができますか?

4

5 に答える 5

146

これにより、望ましい結果が得られるはずです。

<input type="checkbox" ng-model="newObject[item.name]">

ここに作業プランクがあります: http://plnkr.co/edit/ALHQtkjiUDzZVtTfLIOR?p=preview

于 2013-01-06T15:46:50.713 に答える
6

Angular 1.3 では、ng-model-optionsディレクティブを使用してモデルを動的に割り当てたり、式にバインドしたりできます。

ここに plunkr があります: http://plnkr.co/edit/65EBiySUc1iWCWG6Ov98?p=preview

<input type="text" ng-model="name"><br>
<input type="text" ng-model="user.name" 
ng-model-options="{ getterSetter: true }">

詳細はngModelOptionsこちら: https://docs.angularjs.org/api/ng/directive/ngModelOptions

于 2015-02-06T12:09:51.113 に答える
1

これは、「model.level1.level2.value」など、より深い表現をサポートするための私のアプローチです。

<input class="form-control" ng-model="Utility.safePath(model, item.modelPath).value">

ここで、item.modelPath = 'level1.level2' および Utility(model, 'level1.level2') は、model.level1.level2 を返すユーティリティ関数です。

于 2015-10-08T08:33:01.937 に答える