Angular-正式嵌套模型未更新

Angular-Formly Nested Model Not Updating

我对 angular-formly 有一个有趣的问题。我正在尝试使用如下所示的 'model' 标签,因为我的模型不是平面的。

{
    'key': 'last',
    'model': 'model.name',
    'templateOptions: {}
} 

但是,我无法以干净的方式更新模型。简单地用包含更新值的匹配模型替换模型甚至 model.name 不会导致模型更新视图。

var newModel = {
    name: {
        first: 'Gandalf',
        last: 'The White'
    }
};
self.model = {
    name: {
        first: 'Gandalf',
        last: 'The Grey'
    }
};
function setNewLastName() {
    self.model = newModel;
}
setNewLastName();

但是,如果我深入到特定的 属性,它会按预期工作。

self.model.name.last = self.newModel.name.last;

这是一个 link 的 JSBin,其中的值使用上面的向下钻取方法进行更新。 Drill-down JSBin

另一个 JSBin 试图通过分配一个不更新的新模型来更新模型。 Assign Model JSBin

有人 运行 解决过这个问题吗?或者你能看出我哪里做错了吗?

您替换了每个键的模型,因此您永远看不到变化。

您需要做的是匹配密钥本身的模型

vm.fields = [
  {
    key: 'name.first', // <-- HERE
    type: 'input',
    //model: vm.model.name, //Wrong
    templateOptions: {
      label: 'First Name'
    }
  },
  {
    key: 'name.first', // <-- AND HERE
    type: 'input',
    //model: vm.model.name, //Wrong
    templateOptions: {
      label: 'Last Name'
    }
  },
  //...
];

查看更正示例:http://jsbin.com/pupijoc/1/edit?js,console,output


更新:嵌套属性也由fieldGroups

处理

更新示例:http://jsbin.com/pupijoc/3/edit?js,console,output