假设我有一个名为' myDirective'的指令。我如何要求该指令的所有实例必须具有特定的属性,例如bellow:
<div data-my-directive data-my-variable='blue'></div>
答案 0 :(得分:3)
我不确定您是否可以直接要求属性,但是您可以检查是否提供了值,如果没有则抛出异常。例如,来自ng-repeat:
link: function($scope, $element, $attr, ctrl, $transclude){
var expression = $attr.ngRepeat;
var match = expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),
trackByExp, trackByExpGetter, trackByIdExpFn, trackByIdArrayFn, trackByIdObjFn,
lhs, rhs, valueIdentifier, keyIdentifier,
hashFnLocals = {$id: hashKey};
if (!match) {
throw ngRepeatMinErr('iexp', "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",
expression);
}
}
答案 1 :(得分:0)
我认为最好的方法是检查属性,看看是否&#34; myVariable&#34;存在并抛出异常,如果它没有, 但是如果你必须要求在指令定义中唯一的方法是使myVariable成为另一个指令并使用require:&#39; myVariable&#39;在最初的指令上,例如myDirective。