requireTalimat size dördüncü argüman olarak adlandırmak yönergesi için denetleyici verir linkfonksiyonu. ( ^Bir üst öğe üzerinde denetleyiciyi aramak için kullanabilirsiniz ; ?onu isteğe bağlı hale getirir.) Bu nedenle require: 'ngModel'size ngModelyönerge için denetleyiciyi verir , bu birngModelController .
Yönerge denetleyicileri, diğer yönergelerin kullanabileceği API'leri sağlamak için yazılabilir; ile ngModelController, ngModeldeğer alma ve ayarlama dahil olmak üzere yerleşik özel işlevlere erişim elde edersiniz . Aşağıdaki örneği düşünün:
<input color-picker ng-model="project.color">
app.directive('colorPicker', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
element.colorPicker({
pickerDefault: scope.color,
onColorChange: function(id, newValue) {
scope.$apply(function() {
ngModel.$setViewValue(newValue);
});
}
});
ngModel.$render = function() {
element.val(ngModel.$modelValue);
element.change();
};
}
}
});
Bu yönerge ngModel, renk seçiciden renk değerini almak ve ayarlamak için denetleyiciyi kullanır . Bu JSFiddle örneğine bakın: http://jsfiddle.net/BinaryMuse/AnMhx/
Eğer kullanıyorsanız require: 'ngModel', muhtemelen olmamalıdır da kullanıyor ngModel: '='sizin izolatı kapsamında; ngModelControllersize değerini değiştirmek için gereken tüm erişim sağlar.
AngularJS ana sayfasındaki alttaki örnek de bu işlevi kullanır (özel bir denetleyici kullanmak dışında ngModel).
Bir direktifin büyük / küçük harf durumuyla ilgili olarak, örneğin, ngModelvs ng-modelvs data-ng-model: Angular, DOM üzerinde birden fazla form kullanılmasını desteklerken, bir direktife adıyla atıfta bulunduğunuzda (örneğin, bir direktif oluştururken veya kullanırken require), her zaman lowerCamelCase'i kullanırsınız adın şekli.
ng-model='property'