基本上,我正在尝试为date-picker编写一个指令。在这个指令中,我使用ng-model的变量来将更改后的值反映到父控制器。但我有一些问题。我不知道如何设置ng-model变量的初始值。其次,我没有得到如何更新ng-model变量并对其进行验证。从指令中更改ng-model值
我试过这样的事情。
angular.module("mainModule.directives").directive('datePicker', function() {
var directive = {
restrict: 'E',
replace : false,
template : '<input ng-model="date" type="text"/>',
require : 'ngModel',
scope : {},
link : function($scope, elem, attr, ngModelCtr) {
$scope.date = ngModelCtr.$viewValue;
function fromUser(text) {
$scope.date = ngModelCtr.$viewValue;
}
function toUser(text) {
ngModelCtr.$setViewValue($scope.date);
}
ngModelCtr.$parsers.push(fromUser);
ngModelCtr.$formatters.push(toUser);
}
};
return directive;
});
<date-picker ng-model="modelDate"></date-picker>
后,我改变指令的日期变量应该在NG-模型反映了变量即modelDate,还可以设置验证参数从指令 –
您需要“执行”ngModel。$ render()'将模型值传送到视图。然后以某种方式(取决于指令的确切实现),您必须调用'ngModel。$ setViewValue(value)'来从UI更新模型。请参阅[docs]底部的示例(https://docs.angularjs.org/api/ng/type/ngModel.NgModelController)。 –