結合我有一個對象像以下:AngularJS模型具有兩個字段
MyObj{
Groups:[{name:"test1": xdata:"[1,2,3]" }, {name:"test2": xdata:"[5,6,7]" }]
}
我必須代表在同一頁上的兩個不同的視圖這些值。第一個視圖在textareas中呈現xData和yData,它使用SplitArray指令在文本區域的每一行顯示值1,2,3一個值。
<textarea split-array="" ng-model="group.xdata" > </textarea>
第二視圖在文本框中顯示這些值。外部數據分成三個文本框像下面
<input type="text" ng-model="group.xdata[0]" >
<input type="text" ng-model="group.xdata[1]" >
以下是SplitArray指令
myModule.directive('splitArray', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
function fromUser(text) {
return text.split("\n");
}
function toUser(array) {
return array.join("\n");
}
ngModel.$parsers.push(fromUser);
ngModel.$formatters.push(toUser);
}
};
})
當我做在廠景(文本域)的改變,我可以正確地看到第二視圖改變的值(文本框),但當我在view2中進行更改時,更改不會反映在textareas中。當我在文本框的變化上做一個console.log時,我可以看到模型顯示了新的值。我的問題是爲什麼模型更改沒有反映在textareas中,我是否需要對splitArray指令進行一些更改?
我不確定,但你可能想檢查http://stackoverflow.com/questions/15363259/watch-not-being-triggered-on-array-change –
請設置一個plunkr或jsfiddle。 – akonsu