次のようなオブジェクトがあります。
MyObj{
Groups:[{name:"test1": xdata:"[1,2,3]" }, {name:"test2": xdata:"[5,6,7]" }]
}
これらの値を同じページの 2 つの異なるビューで表す必要があります。最初のビューは xData と yData をテキストエリアにレンダリングし、SplitArray ディレクティブを使用して、テキストエリアの各行に値 1、2、3 を表示します。
<textarea split-array="" ng-model="group.xdata" > </textarea>
2 番目のビューでは、これらの値がテキスト ボックスに表示されます。xData は次のように 3 つのテキスト ボックスに分割されます
<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);
}
};
})
view1(textarea) を変更すると、2 番目のビュー (textboxes) で変更された値が正しく表示されますが、view2 を変更すると、変更が textareas に反映されません。テキストボックスの変更で console.log を実行すると、モデルが新しい値を示していることがわかります。私の質問は、モデルの変更がテキストエリアに反映されない理由です。splitArray ディレクティブを変更する必要がありますか?