更新到Angular 0.9.10后出错。
=== index.html ====
...
<body ng-app>
<div ng-hide="true" class="border well loading">Wait ...</div>
<div main-controller ng-cloak>
...
</div>
</body>
=== main.dart ===
@NgController(
selector: '[main-controller]',
publishAs: 'ctrl'
)
class MainController {
...
MainController (Scope scope) {
scope.context['msg'] = "abc";
}
}
=== other.dart ===
@NgController(
selector: '[other-controller]',
publishAs: 'ctrl'
)
class OtherController {
...
Scope scope;
OtherController (Scope _scope) {
this.scope = _scope;
print("msg => $this.scope.context['msg']"); // I want print msg => abc here
}
}
在角度版本&lt; 0.9.8打印msg =&gt; abc但在更新到0.9.10后它为空。
我知道NgController的新注意事项:控制器在元素上创建一个新的范围。它是0.9.9的新功能吗?
控制器的范围是否像组件一样?因为我阅读了AngularDart教程ch03:“组件创建了自己的外部世界不可见的范围层次结构。他们无法直接访问应用程序的范围,也不能直接访问组件的范围。”
答案 0 :(得分:0)
你需要添加一些花括号
print("msg => $this.scope.context['msg']"); // wrong
print("msg => ${this.scope.context['msg']}"); // evaluates the entire expression not only `this`