Gil*_*man 5 angularjs angularjs-directive
指令是否需要自己?这是一个例子:
app.directive('menu', function () {
return {
restrict: 'E',
require: '?^menu',
link: function(scope, element, attrs, ctrl) {
console.log('ctrl: ', ctrl);
if (ctrl) {
element.addClass('nested');
} else {
element.addClass('notnested');
}
}
};
});
Run Code Online (Sandbox Code Playgroud)
在我的测试中它似乎不起作用(ctrl总是未定义).看到插件
顺便提一下,在回答了这个问题后,我发现在这种情况下,caret(^)没有效果,传递给link函数的控制器总是实例自己的控制器.[ plunk ]
您应该直接定义控制器函数以将指令API暴露给其他指令:
app.directive('menu', function () {
return {
restrict: 'E',
require: '?^menu',
controller: function($scope){ },
link: function(scope, element, attrs, ctrl) {
console.log('ctrl: ', ctrl);
if (ctrl) {
element.addClass('nested');
} else {
element.addClass('notnested');
}
}
};
});
Run Code Online (Sandbox Code Playgroud)
请参阅http://plnkr.co/edit/cKFuS1lET56VOOYD5rrd?p=preview
| 归档时间: |
|
| 查看次数: |
612 次 |
| 最近记录: |