Tôi là người mới bắt đầu với Angular và tôi không thể tìm ra cách truy xuất dữ liệu từ bên ngoài một chỉ thị. Tôi có nhiều đầu vào được cập nhật và tôi cần chỉ thị để lấy dữ liệu này và làm việc với nó. Ví dụ, trong đoạn mã dưới đây, trường đầu vào đầu tiên được nối với chỉ thị và hoạt động tốt, nhưng không đưa thuộc tính chỉ thị vào trường nhập thứ hai, làm thế nào dữ liệu được nhập vào trường đó được cập nhật trong chỉ thị?AngularJS - Thay đổi đầu vào bên ngoài giá trị chỉ thị được chuyển vào chỉ thị
HTML:
<div ng-app="myDirective">
<input type="text" ng-model="test1" my-directive>
<input type="text" ng-model="test2">
</div>
Chỉ thị:
angular.module('myDirective', [])
.directive('myDirective', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
scope.$watch(attrs.ngModel, function (v) {
console.log('New Value from field 1: ' + v);
//console.log('New Value from field 2: ' + ???);
});
}
};
});
Oh whoa, tôi không hy vọng rằng sẽ làm việc. Tuy nhiên, chỉ thị này chỉ nhận thấy một sự thay đổi trong trường văn bản đầu tiên. Làm thế nào có thể kết quả trường văn bản thứ hai trong đồng hồ $ được gọi? – AaronAAA
Bạn chỉ cần thêm một đồng hồ khác trên 'test2'. Tôi đã cập nhật fiddle để hiển thị điều đó. – sh0ber
Tôi hiểu. Tôi vừa cập nhật mã của tôi và nó hoạt động! Một câu hỏi cuối cùng mặc dù, nếu có nhiều hơn hai đầu vào, cho phép nói test3, làm thế nào mà sẽ làm việc? – AaronAAA