我有以下型号:
{
"RU": {
name: "value a",
other_key: "xxx",
},
"EN": {
name: "value a",
other_key: "xxx",
},
... 10+ other languages ...
}
为了呈现表单,我使用了中间格式:
[
{ name: "value_a", languages: ["RU", "EN"] }
... other groups by value ...
]
如何让这一切保持同步?可能会发生原始模型的变化 我应该将它们推入中间格式以更新视图。变化 视图可以由用户进行,我应该将它们传播到模型和 中间观点。
如果没有大量的观察者和复杂的代码,就无法想到好的解决方案。 想法?
答案 0 :(得分:0)
你只会看模特&中间格式(完全观看第3个参数设置为真 - 深表)。
var surpressWatchmodel = false;
var surpressWatchinter = false;
$scope.$watch('model',function(newval,oldval){
if(surpressWatchmodel) { surpressWatchmodel = false; return; }
//update intermediate format.
surpressWatchinter = true;
},true);
$scope.$watch('intermediate',function(newval,oldval){
if(surpressWatchinter ) { surpressWatchinter = false; return; }
//update model format.
surpressWatchmodel= true;
},true);
对于视图,您将使用ng-model =“intermediate.name”(angular会将此作为监视项添加给您)。