隔离作用域的不可见属性
invisible properties of isolated scope
var myApp = angular.module('myApp',[]);
myApp.controller('myCtrl',function($scope) {
$scope.name = 'Superhero';
})
myApp.directive('dir', function() {
return {
restrict: 'AE',
scope:{
name:"="
},
controller: function($scope) {},
link: function(scope, element, attrs, ctrls) {
scope.insider="FFFF"
}
}
});
在渲染下面的html时,为什么'insider'显示为null
使用隔离作用域时,存储指令相关变量的理想方式是什么?为什么属性不能在模板中正确呈现?
jsfiddle
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
<div ng-app="myApp"><div ng-controller="myCtrl">
Hello, {{name}}!
<dir name='name'>{{insider}}{{name}}</dir>
</div></div>
请查看1.2.0版本的变更日志:
由于de0efd5ee,在应用模板或其他指令模板中定义的子元素不会获得隔离作用域。理论上,没有人应该依赖这种行为,因为它是非常罕见的——在大多数情况下,隔离指令有一个模板。
你的问题实际上与这个关于具有隔离作用域版本冲突的指令的问题密切相关
所以如果你创建一个模板,一切都很好!
此外…
作为一种类似调试的检查作用域的方式,您实际上可以使用这个插值字符串读取insider
属性:
{{$$childHead.insider}}{{name}}
相关文章:
- ng重复中的ng模型-初始化唯一作用域属性
- AngularJs,在没有隔离的情况下将指令属性添加到作用域
- Javascript-在全局作用域中调用本地函数/属性
- AngularJS观察指令属性表达式,动态继承作用域
- 监视自定义指令属性在父作用域更改时不发生更改
- 尝试重新使用“;这个“;属性,则它将失去作用域
- AngularJS select with ng选项不更新父作用域中的引用对象属性
- 如何更新作为属性传入的作用域变量
- 角度:覆盖'@'链接或控制器中隔离作用域中的属性
- 如果作用域值等于单击的元素的属性值,则Ng类
- 在AngularJS中对指令的隔离作用域设置新属性
- AngularJS指令作用域未解析(“属性名称未定义”错误)
- AngularJS自定义指令在继承父作用域时访问模板中的属性
- 将泛型函数动态关联到对象属性时的作用域.(模块模式)
- 使用一个指令从另一个独立作用域复制范围属性
- Javascript 函数作用域和查找父对象的属性
- 在作用域对象中定义但不可访问的属性
- Angularjs 父作用域使用子作用域'属性
- 隔离限制为属性的指令的作用域
- javascript中的这个属性作用域