requireการเรียนการสอนจะช่วยให้คุณควบคุมสำหรับสั่งคุณชื่อเป็นอาร์กิวเมนต์ที่สี่ที่คุณlinkฟังก์ชั่น (คุณสามารถใช้^เพื่อค้นหาคอนโทรลเลอร์ในองค์ประกอบหลัก?ทำให้เป็นทางเลือก) ดังนั้นจึงrequire: 'ngModel'ให้ตัวควบคุมสำหรับngModelคำสั่งซึ่งเป็นngModelControllerไฟล์.
สามารถเขียน Directive controllers เพื่อจัดเตรียม API ที่คำสั่งอื่นใช้ได้ ด้วยngModelControllerคุณจะสามารถเข้าถึงฟังก์ชันพิเศษที่มีอยู่ภายในngModelรวมถึงการรับและตั้งค่า พิจารณาตัวอย่างต่อไปนี้:
<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();
};
}
}
});
คำสั่งนี้ใช้ngModelคอนโทรลเลอร์เพื่อรับและตั้งค่าของสีจาก colorpicker ดูตัวอย่าง JSFiddle นี้: http://jsfiddle.net/BinaryMuse/AnMhx/
หากคุณกำลังใช้require: 'ngModel'คุณอาจจะไม่ได้นอกจากนี้ยังจะใช้ngModel: '='ในขอบเขตแยกของคุณ ngModelControllerช่วยให้คุณเข้าถึงทุกที่คุณจำเป็นต้องเปลี่ยนค่า
ตัวอย่างด้านล่างในโฮมเพจ AngularJSยังใช้ฟังก์ชันนี้ (ยกเว้นการใช้คอนโทรลเลอร์แบบกำหนดเองไม่ใช่ngModel)
สำหรับปลอกของคำสั่งตัวอย่างเช่นngModelvs ng-modelvs data-ng-model: ในขณะที่ Angular รองรับการใช้หลายรูปแบบบน DOM เมื่อคุณอ้างถึงคำสั่งตามชื่อ (ตัวอย่างเช่นเมื่อสร้างคำสั่งหรือใช้require) คุณจะใช้ lowerCamelCase เสมอ รูปแบบของชื่อ
ng-model='property'