基本上,我正在嘗試爲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)。 –