我在做什么: 我想动态更新基于ngModel的指令中的AngularJS范围。将数组转换为嵌套对象
小小故事: 我注意到Angular将我的ngModel字符串视为字符串而不是对象。所以,如果我有这样的:
ng-model="formdata.reports.first_name"
如果我试图拉ngModel的指示,并指派东西吧,我结束了$范围[“formdata.reports.first_name”。它将它视为一个字符串而不是嵌套对象。
我现在这样: 我想通得到这个工作是将ngModel字符串分割成一个数组的唯一途径,所以我现在有工作:
models = ["formdata", "reports", "first_name"];
该作品不错,我能现在静态长度使用动态值,如:
$scope[models[0]][models[1]][models[2]] = "Bob";
问题: 如何使日动态范围动态的长度?我希望这可以扩展到100个嵌套的对象,如果需要,甚至只是1.
更新: 我能够使用if语句来实现这个半动态,但我如何使用for循环,没有“最大”?
if (models[0]) {
if (models[1]) {
if (models[2]) {
if (models[3]) {
$scope[models[0]][models[1]][models[2]][models[3]] = "Bob";
} else {
$scope[models[0]][models[1]][models[2]] = "Bob";
}
} else {
$scope[models[0]][models[1]] = "Bob";
}
} else {
$scope[models[0]] = "Bob";
}
}
$ scope.formdata.reports.first_name是否在你的指令中工作? – Pete
是的,数据绑定也可以。 – JoshT