我之前写过指令有一个孤立的范围,但它们是元素指令
如果我编写一个基于属性的指令,我该如何将隔离范围传递给它?
由于
答案 0 :(得分:0)
您可以使用与使用element指令完全相同的方式执行此操作,即将附加属性传递给隔离范围。
<强> HTML:强>
<div greeting-directive my-greeting="'hello'" greet-who="'world'"></div>
<强> JS:强>
angular.module("myApp").directive("greetingDirective", function(){
return {
restrict: 'A',
scope: {
myGreeting: "=",
greetWho : "="
},
template: '<p>{{ myGreeting }}, {{ greetWho }}</p>'
}
});
<强> Sample Plunk 强>
答案 1 :(得分:0)
它非常类似于Element指令的隔离范围。考虑这个例子:
myApp.directive('test', function () {
return {
restrict: 'A',
scope: {test: '='},
link: function (scope, element) {
scope.$watch('test', function () {
console.log(scope.test)
});
}
};
});
我使用direcitve名称作为范围变量。
<div test="ctrl.val">some stuff</div>
但是如果我不想像这样利用指令名:
myApp.directive('notTest', function () {
return {
restrict: 'A',
scope: {test: '='},
link: function (scope, element) {
scope.$watch('test', function () {
console.log(scope.test)
});
}
};
});
然后html可能如下所示:
<div not-test test="ctrl.val">some stuff</div>