我是Angular的新手,我正在尝试创建一个指令并对孤立的范围属性提出疑问。如果我有指令:
MyApp.directive('myDirective', function() {
return {
scope: {
symbol: '@'
},
...
是否有可能以某种方式制作符号?在我的情况下,如果没有提供,指令将无法正常运行。
答案 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>
缺少必需的指令。