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