私はAngularの初心者です。ディレクティブの外側からデータを取得する方法を理解できません。私は様々な入力が更新されており、このデータを受け取り、それを使用するための指示が必要です。たとえば、以下のコードでは、最初の入力フィールドはディレクティブにフックされ、正常に動作しますが、2番目の入力フィールドにディレクティブ属性を入れずに、ディレクティブでそのフィールドに入力されたデータをどのように更新できますか?AngularJS - ディレクティブ値の外側への入力の変更
HTML:
<div ng-app="myDirective">
<input type="text" ng-model="test1" my-directive>
<input type="text" ng-model="test2">
</div>
指令:
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: ' + ???);
});
}
};
});
おっとああ、私はそれが働くだろう期待していませんでした。ただし、この指示文では、最初のテキストフィールドの変更のみが通知されます。 2番目のテキストフィールドで$ watchが呼び出されるのはどうでしょうか? – AaronAAA
'test2'に別の時計を追加するだけです。私はそれを示すためにフィドルを更新しました。 – sh0ber
私は参照してください。私はちょうど私のコードを更新し、それは動作します!最後の質問ですが、2つ以上の入力がある場合、test3としましょう。どのように機能しますか? – AaronAAA