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
处理
我对 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
处理