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
)
สำหรับปลอกของคำสั่งตัวอย่างเช่นngModel
vs ng-model
vs data-ng-model
: ในขณะที่ Angular รองรับการใช้หลายรูปแบบบน DOM เมื่อคุณอ้างถึงคำสั่งตามชื่อ (ตัวอย่างเช่นเมื่อสร้างคำสั่งหรือใช้require
) คุณจะใช้ lowerCamelCase เสมอ รูปแบบของชื่อ
ng-model='property'