我正在写一个有角度的指令来帮助验证字段。它正在努力存储验证结果。
我想将它存储在像error.password.old
执行此操作的代码如下所示:
if(!(typeof iAttrs.ngModel == "undefined"))
{
var model = iAttrs.ngModel.split('.');
var length = model.length;
var target = scope.error;
if(typeof validation[iAttrs.validate] == "function")
{
for(var index = 0; index < length; index++)
{
target = target[model[index]];
}
target = validation[iAttrs.validate]();
scope.$apply();
}
else throw("function " + iAttrs.validate + " does not exist.");
}
iAttrs.ngModel持有“password.old”。
谷歌目前正在抛出:未捕获的TypeError:无法读取未定义的属性“old”
这是在for循环的第二次迭代中抛出的。
我知道它是未定义的,但我需要找到一种方法来动态定义它而不使用正常的{}符号。
答案 0 :(得分:0)
我正在使用以下代码来执行此操作。
function createObj( str ) {
var d = str.split("."), j, o = scope.error;
for (j = 0; j < d.length; j = j + 1) {
o[d[j]] = o[d[j]] || {};
o = o[d[j]];
}
return o;
}
createObj(iAttrs.ngModel);
答案 1 :(得分:0)