我正在编写我的 angularjs 指令,其定义如下:
return {
restrict: 'EA',
link: link,
scope: true,
transclude: true,
replace: true,
controller: controller,
template: '<div class="wizard">' +
'<div ng-transclude></div>' +
'</div>'
};
我注意到创建了两个范围:
< Scope (003) --- parent scope of directive
< Scope (004) --- controller scope of directive which I think is child scope created by 'scope=true'. all my functions, properites defined in controller show up in this scope
< Scope (005) --- transclude scope which is empty
从文档中我期望只创建一个子范围,因为“范围=真”不会创建一个孤立的范围。这导致所有被“ng-transclude”替换的元素实际上继承了 Scope(005) 并且无法访问我在控制器中定义的函数/属性,因为它们位于 Scope(004) 中,它是 Scope(005) 的兄弟。
我不知道发生了什么问题,有人可以在这里放一些灯吗?
当使用 Chrome 调试器查看我的元素时,我注意到这些元素是由“ng-scope”类添加的,但是,如何将“ng-scope”与batarang 控制台中显示的范围匹配?比如显示 ng-scope 的 id。
谢谢