2013-07-10 2 views

ответ

2

Директива может (но не обязательно) иметь контроллер.

NgModelController - это буквально контроллер, который используется для директивы ngModel. Я думаю, именно поэтому он назван соответственно.

Вы можете увидеть, где ngModel is defined here и the controller is here

var ngModelDirective = function() { 
    return { 
    require: ['ngModel', '^?form'], 
    controller: NgModelController 
    // *snip* 
} 
+0

Кажется странным, что директива будет нужен контроллер, когда он такие методы, как «ссылку» настройки. –

+1

ссылка прекрасна, если вы хотите подключиться к родным событиям, а что нет, но иногда директива более сложна. Например, он может иметь шаблон, который имеет привязки и требует настройки свойств области. Наличие контроллера + шаблона делает все эти вещи более чистыми. –

+0

Итак, если вы добавили ng-controller = "ctrl1" в тег , не означает ли это, что элемент получает два контроллера? –

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