私はテンプレートを持っているディレクティブを持っており、ユーザーがenterをクリックしたときにng-modelを更新しようとしています。私はイベントをキャッチして値を更新しようとしています。私は、コントローラ内の要素のウォッチャーを持っていますが、ウォッチャー機能はcommitViewValue
(function() {
'use strict';
angular.module('aa')
.directive('ss', [
function() {
return {
restrict: 'EA',
replace: true,
transclude: true,
scope: {
placeholder: '@'
},
require: 'ngModel',
template: '<div class="clear">' +
'<input type="text" ng-model="ngModel" ng-model-options="{updateOn:\'change blur\'}" />' +
'</div>',
link: function (scope, elem, attrs, ngModelCtrl) {
elem.bind("keyup",function(e) {
if (e.keyCode === 13) {
e.stopImmediatePropagation();
ngModelCtrl.$commitViewValue();
scope.$apply(ngModelCtrl.$setTouched);
}
});
}
}
}
]);
})();
$scope.$watch('pr', function(newValue,oldValue){
console.log('val>>' + newValue);
});
<ss ng-model="pr"></ss>
お返事ありがとうございます!完璧に動作します。 – phantomsays