你怎么“需要”上angularjs指令属性?(How do you 'require'

2019-10-20 00:55发布

说我有一个名为指令“myDirective”。 我怎么能要求该指令的所有实例都必须对他们有特定的属性,如波纹管:

<div data-my-directive data-my-variable='blue'></div>

Answer 1:

我不知道,你可以直接需要的属性,但你可以检查如果提供了值,并抛出一个异常,如果不。 例如,从NG-重复:

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);
        }
}


Answer 2:

我认为要做到这一点的最好办法是检查的属性,看看是否“MYVARIABLE”存在,如果它不抛出一个异常,但如果你必须要求在指令中定义的唯一的办法就是让MYVARIABLE另一个指令和使用要求:在原有指令如myDirective“MYVARIABLE”。



文章来源: How do you 'require' an attribute on an angularjs directive?