0
Я знаю основы углового и все еще пытаюсь изучить различные способы реализации концепции. И было интересно, есть ли какой-либо другой способ привязать данные к области видимости и виду, кроме того, что я нашел ниже , и это лучшая практика. Пожалуйста, поправьте меня, если я где-то ошибаюсь.Любой другой способ для двусторонней привязки с использованием директивы
Я использую jquery datepicker.
var app = angular.module('myApp', []);
app.controller('myController', ['$scope', function($scope){
$scope.date = "";
$scope.submitDate = function(){
console.log($scope.date);
};
}]);
app.directive('myDatepicker', function(){
return {
scope: {
date: "="
},
restrict: 'EA',
require: "ngModel",
link: function(scope, element, attributes, modelController){
element.datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd/mm/yy",
onSelect: function(value, picker){
////way 1
scope.date = value;
scope.$parent.$digest();
////way 2
modelController.$setViewValue(value);
////way 3
element.val(value);
element.trigger('input');
////way 4
scope.$apply(function(){
scope.date = value;
});
}
});
}
}
})
я не получил вас. что он должен делать с ng-disabled. Я имею в виду, я просто хочу узнать разные способы установить представление и значение модели из директивы. Как вы можете добиться этого с помощью $ render или ng-disabled, если на то пошло. –
жаль, что не сосредоточить основную идею. во-первых, «путь 2» лучше всего, потому что, когда выбрана датапикер, вы должны обновить значение «model value», «view value» и другое состояние формы like 'form. $ valid, form. $ dirty ...'. 'model. $ setViewValue (value)' сделает все для вас. – user2530403
Все нормально. Вы сказали, что лучше всего я могу узнать, что такое рассуждение. Является ли он более совершенным, чем другие. –