Ng控制器范围在更新0.9.9后继承

时间:2014-03-21 17:44:17

标签: dart angular-dart

更新到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:“组件创建了自己的外部世界不可见的范围层次结构。他们无法直接访问应用程序的范围,也不能直接访问组件的范围。”

1 个答案:

答案 0 :(得分:0)

你需要添加一些花括号

 print("msg => $this.scope.context['msg']");  // wrong
 print("msg => ${this.scope.context['msg']}"); // evaluates the entire expression not only `this`