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 ...
申し訳ありませんが主なアイデアに焦点を当てます。最初に 'way 2'が最適です。datepickerが' model value'を更新しなければならないとき、 'view value'と他のフォームステータスは' form。$ valid、form。$ dirty ... 'が好きです。 'model。$ setViewValue(value)'はあなたのためにすべてを行います。 – user2530403
問題ありません。あなたは、その背後にある推論を知っているかもしれません。それは他人よりも演奏家ですか? –