1

我怀疑这是一个错误,甚至可能是https://github.com/angular/angular.dart/issues/396的表现。

我想注册多个控制器并想ctrl用作publishAt. @NgDirective这导致第二次ctrl破坏第一次的价值,即使它们存在于不同的范围内。

这是视图:

<!DOCTYPE html>
<html>
  <body>    
    <div>
      <div foo-controller>

        <!-- PRINTS 'bar'. -->
        <p>{{ctrl.item}}</p>
      </div>

      <div bar-controller>
        <!-- PRINTS 'bar'. -->           
        <p>{{ctrl.item}}</p>
      </div>
    </div>

    <script type="application/dart" src="main.dart"></script>
    <script type="text/javascript" src="packages/browser/dart.js"></script>
  </body>
</html>

这是飞镖代码:

import 'package:angular/angular.dart';

@NgDirective(
  selector: '[foo-controller]',
  publishAs: 'ctrl'
)
class FooController {
  String item = 'foo';
}

@NgDirective(
  selector: '[bar-controller]',
  publishAs: 'ctrl'
)
class BarController {
  String item = 'bar';
}

main() {
  ngBootstrap(module: new Module()
      ..type(FooController)
      ..type(BarController));
}

两次输出都是“bar”。如果我使publishAs值唯一,则输出为“foo”后跟“bar”。

这是一个错误还是我误解了作用域的工作原理?

4

2 回答 2

2

你应该使用@NgController 而不是@NgDirective

于 2014-02-08T13:36:46.873 回答
2

重复: https ://github.com/angular/angular.dart/issues/396 被 CSS 选择器困扰以触发控制器

于 2014-01-09T02:46:14.743 回答