如果两个angular指令被附加到同一个DOM元素,那么它们是否共享相同的作用域?angular文档隐含地指出了这种情况,如果是这样,那么防止指令之间出现名称间隔问题的最佳实践是什么?
例如。
<div directive-1 directive-2>
</div>其中,指令-1和指令-2设置了作用域: true或作用域:{...}
发布于 2015-06-09 21:46:03
对于这类事情的最佳实践是指令中的require属性,您应该能够请求directive-1的控制器并通过该控制器访问其作用域。但是现在你也有了一个可以在指令之间共享的API。
app.directive('directive1', function () {
return {
require: '^directive1',
controller: ['$scope', function ($scope) {
this.$scope = $scope;
this.sharedFn = function () {
};
return this;
}]
};
});
app.directive('directive2', function () {
return {
require: '^directive1',
link: function (scope, element, attrs, directive1Ctrl) {
console.log(directive1Ctrl);
}
};
});
app.directive('directive3', function () {
return {
require: '^directive1',
link: function (scope, element, attrs, directive1Ctrl) {
console.log(directive1Ctrl);
}
};
});希望这能有所帮助
https://stackoverflow.com/questions/19091710
复制相似问题