是否可以为angular的指令要求属性存在?

时间:2014-11-17 12:55:12

标签: angularjs

我创建了一个需要特定属性的指令。

我可以检查链接函数中的属性值并抛出异常 虽然如果存在某种声明方式并且$compile会像需要特定控制器时那样抛出异常,它会更好。

2 个答案:

答案 0 :(得分:1)

在指令定义的compile函数中检查并验证属性。这就是Angular的原生指令的构建方式,例如in the ng-repeat source

compile: function ngRepeatCompile($element, $attr) {
  var expression = $attr.ngRepeat;
  var match = expression.match(...);
  if (!match) {
    throw ngRepeatMinErr(...);
  }
}

答案 1 :(得分:0)

您可以随时检查您的指令是否存在属性:

link: function(scope, element, attrs) {
            if (!scope.title) {
                return false;//title attribute shouldn't be empty
            }
        },