2016-06-29 4 views
2

я вижу следующее:требует синтаксис ngModel в AngularJS

// my-directive.js  
return { 
    require: 'ngModel', 
    scope: { 
    ngModel: '=', 
    }, 
    controller: controller, 
    link: myLink 
}; 

// my-link.js 
return function(scope, $element, attrs, modelController) { 
    scope.onMyClick = function(event) { 
    modelController.$setViewValue(getItem(event)); 
    } 
}; 

// foo.html 
<my-directive ng-model="myModel"></my-directive> 

ng-model ли директива используется, чтобы обеспечить два способа привязки данных к myModel во внешней сферы, где объявлен экземпляр my-directive?

Является ли это идиоматическим способом обеспечения двусторонней передачи данных между директивой и внешней моделью в Angular 1.4?

Выполняет ли require: 'ngModel' в определении директивы что-либо другое, кроме как вставить экземпляр контроллера для экземпляра директивы ng-model в функцию связи my-link?

И, наконец, делает ли контроллер ng-model доступным для использования в качестве контроллера my-directive?

ответ

1

Здесь есть две разные вещи: ng-model как директива и ngModel: '=' в качестве атрибута. Позволяет разделить их:

<my-directive ng-model="myModel" whatever="myModel"></my-directive> 

return { 
    require: 'ngModel', 
    scope: { 
    myModel: '=', 
    }, 
    controller: controller, 
    link: myLink 
}; 

Является ли директива нг-модель используется для обеспечения двухсторонних привязок данных к в MyModel в внешней области, где мой директивы экземпляр объявлен ?

Нет, двустороннее связывание предоставляется по определению внутри директивы. (whatever здесь)

Это идиоматический способ обеспечить двусторонний привязку данных между директивой и внешней моделью Угловой 1.4?

Один вы использовали объем: { whatever : '='} обычный способ.

ли требует: «ngModel» в определении директивы сделать что-нибудь кроме впрыскивать экземпляр контроллера для нг-модели директива экземпляра в функцию связи моя подключаемой

Не так много , если u использует директиву без ngModel, это вызовет ошибку.

И, наконец, делает ли контроллер ng-модели доступным для области управления контроллером моей-директивы?

Нет, это не добавляет ничего в ваш объем. Вы можете получить доступ к инжектированному контроллеру.

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