AngularJS模型不在javascript数组中更新

时间:2014-11-04 12:09:08

标签: arrays angularjs element bind

我对AngularJS有一个简单的问题:数组之外的属性正常更新,但数组元素(绑定到这些属性)不,这里有一个plunker来显示:http://plnkr.co/edit/gNtGhiTf228G8rP0O2iB?p=preview

var vm = this;

vm.topLine = {
        netWrittenPremiumLastFye: 1000000,
        netWrittenPremiumYtd: 123000
    }

vm.grossColumnChartData = [
        ['Previous YE', vm.topLine.netWrittenPremiumLastFye],
        ['YTD', vm.topLine.netWrittenPremiumYtd]
    ];

我们可以使用$ scope。$ watch('something',function(oldValue,newValue){...})但在我的情况下这不是一个好选择,因为我必须反复多次这样做。

我想利用角度双向绑定,如上所述。

感谢任何帮助或建议,谢谢!

2 个答案:

答案 0 :(得分:0)

我认为不使用$ watch就可以做到这一点的唯一方法是直接在html绑定中更新数组。

{{ grossColumnChartData = [
        ['Previous YE', vm.topLine.netWrittenPremiumLastFye],
        ['YTD', vm.topLine.netWrittenPremiumYtd]
    ] }}
<br/>
grossColumnChartData = {{grossColumnChartData | json}}

看到这个: http://plnkr.co/edit/uthXcvoWSV2XNRFJzkck?p=preview

答案 1 :(得分:0)

我已更新了我的plnkr,现在我得到了答案:http://plnkr.co/edit/gNtGhiTf228G8rP0O2iB?p=preview

<div ng-repeat="item in vm.grossColumnChartData">
    <label>Input {{$index+1}}:</label>
    <input ng-model="item.data" type="text"/>
</div>

我对数据绑定和引用感到困惑。

我使用ng-repeat来更新数组元素。