AngularJS指令 - 是否需要隔离范围属性?

时间:2014-02-22 15:47:49

标签: angularjs angularjs-directive

我是Angular的新手,我正在尝试创建一个指令并对孤立的范围属性提出疑问。如果我有指令:

MyApp.directive('myDirective', function() {
    return {
        scope: {
            symbol: '@'
        },

...

是否有可能以某种方式制作符号?在我的情况下,如果没有提供,指令将无法正常运行。

1 个答案:

答案 0 :(得分:1)

您可以使用第二个指令并在第一个指令中使用。

MyApp.directive('myDirective', function() {
    return {
        scope: {
            symbol: '@'
        },
        require: 'symbol',
        link: angular.noop //this is needed to check for the required controller
        ...
    }
}

MyApp.directive('symbol', function () {
    return {
        controller: angular.noop
    }
}

myDirective实际需要symbol时需要控制器。请注意,在这些情况下,为指令添加命名空间前缀至关重要。

这是一个jsfiddle以及这个工作的一个例子。在示例中,我重写了角度错误服务,以便对所有错误发出警报。您可以看到错误的原因是<div>缺少必需的指令。

http://jsfiddle.net/fooby12/rqRg2/