フィールドの検証を支援するために、Angular でディレクティブを作成しています。バリデーションの結果を保存するところまで動作しています。
のようなオブジェクトに保存したい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」を保持しています。
Google は現在スローしています:
キャッチされていない TypeError: 未定義のプロパティ 'old' を読み取ることができません
これは、for ループの 2 回目の反復でスローされます。
未定義であることは理解していますが、通常の {} 表記なしでオンザフライで定義する方法を見つける必要があります。