当更新指令中的日期选择器时,让服务中的变量自动更新的 angular 方法是什么?
What is the angular way to have a variable in a service automatically update when a datepicker in a directive is updated?
我想使用日期选择器 select 一个日期,然后在服务中对其进行操作以生成更多日期。
我可以从服务中检索一个变量并将日期选择器值分配给它,但是我无法在更新日期选择器时更新服务中的值。最好的 angular 方法是什么?
app.service('calculationDataService', function () {
this.firstDate = new Date();
});
app.directive('datePicker', function(){
return {
restrict: 'E',
templateUrl: 'date-picker.html',
controller: function($scope, calculationDataService){
$scope.today = function() {
$scope.dt = new Date();
};
calculationDataService.firstDate = $scope.dt;
$scope.today();
$scope.clear = function () {
$scope.dt = null;
};
[...]
},
controllerAs: 'pickers'
};
你必须在控制器中分配:
$scope.dataService = calculationDataService;
然后像
一样更新值
$scope.dataService.firstDate = $scope.dt;
编辑
反正我看到顺序不对。
您正在将服务的开始日期 属性 分配给未定义,因为分配后函数是 运行。
你应该 运行 $scope.today() 上面的一行
我需要 Santiago Rebella 的解决方案。但是,要在每次更新日期选择器后更新日期,我还需要 html 中的 ng-change 即 运行 $scope.dataService.firstDate = $scope.dt.
我想使用日期选择器 select 一个日期,然后在服务中对其进行操作以生成更多日期。
我可以从服务中检索一个变量并将日期选择器值分配给它,但是我无法在更新日期选择器时更新服务中的值。最好的 angular 方法是什么?
app.service('calculationDataService', function () {
this.firstDate = new Date();
});
app.directive('datePicker', function(){
return {
restrict: 'E',
templateUrl: 'date-picker.html',
controller: function($scope, calculationDataService){
$scope.today = function() {
$scope.dt = new Date();
};
calculationDataService.firstDate = $scope.dt;
$scope.today();
$scope.clear = function () {
$scope.dt = null;
};
[...]
},
controllerAs: 'pickers'
};
你必须在控制器中分配:
$scope.dataService = calculationDataService;
然后像
一样更新值$scope.dataService.firstDate = $scope.dt;
编辑
反正我看到顺序不对。
您正在将服务的开始日期 属性 分配给未定义,因为分配后函数是 运行。
你应该 运行 $scope.today() 上面的一行
我需要 Santiago Rebella 的解决方案。但是,要在每次更新日期选择器后更新日期,我还需要 html 中的 ng-change 即 运行 $scope.dataService.firstDate = $scope.dt.