Я подозреваю, что это ошибка, возможно даже проявление https://github.com/angular/angular.dart/issues/396.Сделайте публикацию, поскольку значения должны быть уникальными в Angular Dart?
Я хочу зарегистрировать несколько контроллеров и хочу использовать 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>
А вот код Dart:
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));
}
Выход 'бар' оба раза. Если я делаю значения publishAs
уникальными, вывод будет «foo», за которым следует «bar».
Является ли это ошибкой или я не понимаю, как работают области?