我有以下Javascript变量:
scope.model = {
errors: {
email: ["error1", "error2"],
name: ["error"]
}
}
我的功能如下:
function (scope, element, attributes) {
if (scope.model.errors) {
if (scope.model.errors[attributes.validator])
// Do something
}
问题是错误并不总是在同一范围变量上。
我可以有类似的东西:
scope.view = {
newErrors: {
email: ["error1", "error2"],
name: ["error"]
}
在函数内部,我知道如何获取变量:
function (scope, element, attributes) {
var errors = attributes["validatorErrors"];
// Note: errors is this case "view.newErrors"
// So the following code would become:
if (scope.view.newErrors) {
if (scope.view.newErrors[attributes.validator])
// Do something
}
更新
之前我曾尝试[],但现在我明白为什么它不起作用了:
function (scope, element, attributes) {
var errors = attributes["validatorErrors"];
if (scope[errors]) {
if (scope.[errors][attributes.validator])
// Do something
}
如果错误='错误'它会起作用......
如果错误=' model.errors'它赢了。在这种情况下,我需要:
scope['model']['errors'] ...
我该如何解决这个问题?
答案 0 :(得分:0)
使用数组表示法:
if (scope[errors]) {
if (scope[errors][attributes.validator]) {
// do something
答案 1 :(得分:0)
你实际上已经知道了答案,因为你在你的例子中使用它。
scope[newErrors][attributes.validators]
这里要小心,因为当范围[newErrors]未定义时它会中断。因此可能需要一些错误处理