2014-01-09 3 views
1

Я подозреваю, что это ошибка, возможно даже проявление 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».

Является ли это ошибкой или я не понимаю, как работают области?

ответ

2

Вы должны использовать @NgController вместо @NgDirective

Смежные вопросы