0
我是angularjs中較新的。我只是嘗試使用自定義指令更新輸入txt值。但我不能。在這裏我顯示了我的代碼我做錯了這段代碼。有人幫我解釋它是如何工作的。如何使用angularjs中的自定義指令更新輸入文本值
var myApp = angular.module('myApp',[]);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
myApp.controller('MyCtrl',MyCtrl);
function MyCtrl($scope) {
$scope.name = 'Superhero';
$scope.myTime = '10:59';
}
myApp.directive('myDirective', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function (scope, element, attrs, ngModel) {
scope.$watch(attrs.ngModel, function (v) {
console.log('value changed, new value is: ' + v);
ngModel.$setViewValue('11')
//scope.ngModel = '11'
});
}
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="MyCtrl">
Hello, {{name}}!
<input type="text" my-directive ng-model="myTime" name="customTime">
</div>
是的工作。謝謝 – cfprabhu
我以爲你只是想在你的監視器中捕獲更新後的值,如果你需要將文本字段更新爲某個期望的值,則需要在$ setViewValue()後面調用'$ render()' 。更新我的答案以反映這一點。 – Arkantos
很高興能有所幫助:) – Arkantos