require
Talimat size dördüncü argüman olarak adlandırmak yönergesi için denetleyici verir link
fonksiyonu. ( ^
Bir üst öğe üzerinde denetleyiciyi aramak için kullanabilirsiniz ; ?
onu isteğe bağlı hale getirir.) Bu nedenle require: 'ngModel'
size ngModel
yö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
, ngModel
değ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; ngModelController
size 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, ngModel
vs ng-model
vs 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'