Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 带隔离范围的角度指令“;“休息”;其他指令(需要ng,禁用ng)_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 带隔离范围的角度指令“;“休息”;其他指令(需要ng,禁用ng)

Angularjs 带隔离范围的角度指令“;“休息”;其他指令(需要ng,禁用ng),angularjs,angularjs-directive,Angularjs,Angularjs Directive,请在Plunker现场试一试- 请问我该如何解决这个问题?与Plunker和下面的例子不同,我正在处理的指令需要一个独立的作用域(或者至少当前的实现使用了一个作用域,我宁愿不重写它) var-app=angular.module(“MyApp”,[]); app.directive(“myDirective”,function()){ 返回{ //作用域:{}, 链接:函数(){} }; }); .ng无效{ 边框:1px纯红; } 我的指令 测试下面的复选框,然后取消注释//范围:{},

请在Plunker现场试一试-

请问我该如何解决这个问题?与Plunker和下面的例子不同,我正在处理的指令需要一个独立的作用域(或者至少当前的实现使用了一个作用域,我宁愿不重写它)


var-app=angular.module(“MyApp”,[]);
app.directive(“myDirective”,function()){
返回{
//作用域:{},
链接:函数(){}
};  
});
.ng无效{
边框:1px纯红;
}
我的指令
测试下面的复选框,然后取消注释//范围:{},然后重试

致以最良好的祝愿,
Hans

问题是作用域应用于整个DOM元素(即,在本例中为
),而
我的指令
正在创建一个隔离作用域,然后应用于
ng disabled
ng required
。隔离作用域不典型地从封闭作用域继承,因此
isActive
在其中不可见

您可以将该作用域属性映射到隔离作用域,方法是显式地将其作为隔离作用域上的属性提供,然后从
ng required
ng disabled
引用该属性的本地版本。例如,在指令定义中:

scope: {
  myActive: '='
}
“=”将双向绑定设置到该元素的
myActive
属性中给定的表达式,本地名称为
myActive

标记中:

my-directive my-active="isActive" ng-required="myActive" ng-disabled="!myActive"
myActive=“isActive”
将父范围中的
isActive
绑定到隔离范围中的
myActive


我已经演示过了。

谢谢Aron。您的回答不仅有效,而且帮助我更好地理解了scope如何应用于指令。非常感谢。
my-directive my-active="isActive" ng-required="myActive" ng-disabled="!myActive"