По сути, я пытаюсь написать директиву для выбора даты. В этой директиве я использую переменную 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>
ngModel.$render()
для передачи значения модели в представление. И тогда каким-то образом (зависит от точной реализации директивы) вам нужно вызватьngModel.$setViewValue(value)
, чтобы обновить модель из пользовательского интерфейса. См. пример внизу документов. - person Nikos Paraskevopoulos   schedule 28.12.2014