多个指令,一个元素具有单独的作用域
Multiple directives with individual scopes for one element
一个元素可以有多个具有单独作用域的指令吗?
假设我们有自定义指令的子指令,具有控制器的作用域和任何指令(这里是"ng-class"):
<custom-directive data-model="model">
<input class="child" data-ng-class="controllerScopeValue">
</custom-directive>
现在我们要向子级添加具有隔离作用域的额外指令。像这样:
angular.module('core').directive('customDirective', [function($compile) {
return {
scope: {
'model': '='
},
compile: function(templateElement, templateAttrs) {
templateElement.children().attr('data-ng-model', 'directiveScopeValue');
return function($scope) {
$scope.directiveScopeValue = 'directive''s scope value';
}
}
};
}]);
那么,如何为每个指令保留单独的范围呢?
不,这是不可能的,如果你尝试这样做,你会得到类似于
多个指令 [myDirective1, myDirective2] 要求新的/隔离的作用域
普伦克
忽略下面的虚拟代码
app.directive('myDirective1', ['$document',
function ($document) {
return {
restrict: 'A',
replace: false,
scope : {},
和
app.directive('myDirective2', ['$document',
function ($document) {
return {
restrict: 'A',
replace: false,
scope : {},
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 将作用域存储在JSON中
- 从控制器继承了隔离的作用域以生成可重用的指令
- 从ng模板访问作用域
- 调用私有作用域
- 对父作用域的指令更新延迟了一步
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- 在具有命名作用域的自定义Polymer元素中隐藏表行
- AngularJS指令隔离作用域
- Angularjs:修改js中的作用域,稍后在页面中使用
- 访问多个指令的隔离作用域
- 如果在具有单独作用域的其他指令中,请使用ng
- 即使在单独的作用域中也已经定义了 Jslint 变量
- 多个指令,一个元素具有单独的作用域
- 从单独的控制器访问指令作用域
- 在单独的作用域内调用超方法
- JQuery插件'每个元素的单独作用域
- 我是否需要为这个指令设置一个单独的作用域?