我是angularjs的新手。我只是尝试使用自定义指令更新输入txt值。但我不能。在这里,我已经显示了我的代码我做错了这段代码。有人帮助我并解释它是如何工作的。
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>
&#13;
答案 0 :(得分:3)
您应该在MyCtrl
模块中注册myApp
控制器,如下所示。
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl',MyCtrl);
function MyCtrl($scope) {
$scope.name = 'Superhero';
$scope.myTime = '10:59';
}
如果您需要将文本字段值更新为某个所需值,则在使用$ setViewValue()完成观察程序中的更新后,您需要在{{1}上调用$render()
}。
NgModelController
这是检查此更改的Pen。