Javascript 如何通过点分隔路径动态分配ngmodel
我见过几个类似的问题,但我的问题略有不同 我的控制器上有一个对象,看起来像这样:Javascript 如何通过点分隔路径动态分配ngmodel,javascript,angularjs,model,Javascript,Angularjs,Model,我见过几个类似的问题,但我的问题略有不同 我的控制器上有一个对象,看起来像这样: $scope.data = { foo: {bar: 1, bas: 2}, biz: 3, blat: 4 }; 我想创建一个输入,可以将其ng模型动态地分配给这些值中的任何一个 <label>Define Model</label> <input type="text" ng-model="input.model" /> <label&g
$scope.data = {
foo: {bar: 1,
bas: 2},
biz: 3,
blat: 4
};
我想创建一个输入,可以将其ng模型动态地分配给这些值中的任何一个
<label>Define Model</label>
<input type="text" ng-model="input.model" />
<label>Data for {{input.model}}:</label>
<input type="text" ng-model="{{input.model}}">
但这只允许我访问biz和blat属性。有人知道怎么做吗?谢谢 您可以这样做,但前提是稍微修改数据数组的形式,使每个模型都有自己的对象(而不仅仅是一个基元),具有一个公共结构:
var data = {
foo: {
bar: {
value: 1
},
bas: {
value: 2
}
},
biz: {
value: 3
},
blat: {
value: 4
}
};
这样您就可以传递对象,这样ngModel
仍然可以引用(并更改)原始对象
然后,您需要一个函数来转换类似“foo.bas”的“路径”,以返回正确的对象:
最后,所有这些都由在范围上设置“input.model”和“model”的输入控制:
<input placeholder="Model name" ng-model="input.model" />
<input placeholder="Model value" ng-model="model.value" />
可以看出。我必须承认,这是一种代码更少的好方法。您可以做到这一点,但前提是您稍微修改数据数组的形式,使每个模型都有自己的对象(而不仅仅是一个基元),具有一个共同的结构:
var data = {
foo: {
bar: {
value: 1
},
bas: {
value: 2
}
},
biz: {
value: 3
},
blat: {
value: 4
}
};
这样您就可以传递对象,这样ngModel
仍然可以引用(并更改)原始对象
然后,您需要一个函数来转换类似“foo.bas”的“路径”,以返回正确的对象:
最后,所有这些都由在范围上设置“input.model”和“model”的输入控制:
<input placeholder="Model name" ng-model="input.model" />
<input placeholder="Model value" ng-model="model.value" />
可以看出。我必须承认,这是一种代码更少的好方法。您可以做到这一点,但前提是您稍微修改数据数组的形式,使每个模型都有自己的对象(而不仅仅是一个基元),具有一个共同的结构:
var data = {
foo: {
bar: {
value: 1
},
bas: {
value: 2
}
},
biz: {
value: 3
},
blat: {
value: 4
}
};
这样您就可以传递对象,这样ngModel
仍然可以引用(并更改)原始对象
然后,您需要一个函数来转换类似“foo.bas”的“路径”,以返回正确的对象:
最后,所有这些都由在范围上设置“input.model”和“model”的输入控制:
<input placeholder="Model name" ng-model="input.model" />
<input placeholder="Model value" ng-model="model.value" />
可以看出。我必须承认,这是一种代码更少的好方法。您可以做到这一点,但前提是您稍微修改数据数组的形式,使每个模型都有自己的对象(而不仅仅是一个基元),具有一个共同的结构:
var data = {
foo: {
bar: {
value: 1
},
bas: {
value: 2
}
},
biz: {
value: 3
},
blat: {
value: 4
}
};
这样您就可以传递对象,这样ngModel
仍然可以引用(并更改)原始对象
然后,您需要一个函数来转换类似“foo.bas”的“路径”,以返回正确的对象:
最后,所有这些都由在范围上设置“input.model”和“model”的输入控制:
<input placeholder="Model name" ng-model="input.model" />
<input placeholder="Model value" ng-model="model.value" />
可以看出。我不得不承认,这是一种代码更少的好方法。您可以使用
此处$parse
尝试匹配$scope.data
中的值,并将其与definedModel
演示您可以使用
此处$parse
尝试匹配$scope.data
中的值,并将其与definedModel
演示您可以使用
此处$parse
尝试匹配$scope.data
中的值,并将其与definedModel
演示您可以使用
此处$parse
尝试匹配$scope.data
中的值,并将其与definedModel
演示可能尝试使用所需的ng模型属性重新编译元素:可能尝试使用所需的ng模型属性重新编译元素:可能尝试使用所需的ng模型属性重新编译元素:可能尝试使用所需的ng模型属性重新编译元素:不要忘记模型也需要根据变化进行更新;感谢@BrandonTilley和Reza。这正是我想要的。别忘了模型也需要随着变化而更新;感谢@BrandonTilley和Reza。这正是我想要的。别忘了模型也需要随着变化而更新;感谢@BrandonTilley和Reza。这正是我想要的。别忘了模型也需要随着变化而更新;感谢@BrandonTilley和Reza。这正是我想要的。