【问题标题】:Set options from service call results in angular-datepicker (pickadate.js)在 angular-datepicker (pickadate.js) 中设置服务调用结果中的选项
【发布时间】:2015-01-14 09:37:09
【问题描述】:

我正在尝试使用来自 web-api 调用的结果设置基于 pickadateangular-datepicker 的一些选项。

到目前为止,我的代码是:

<label for="datepicker">Date:</label>
<input type="text" id="datepicker" pick-a-date="date" pick-a-date-options="dpoptions" placeholder="Select date" />

我的js文件:

var ServiceBasePath = "http://localhost:29050/api/";
var app = angular.module('myproj', ['angular-datepicker', 'ngTouch']);
app.controller('mycontroller', function ($scope, $http) {

        $scope.dpoptions = {
        format: 'ddd, dd-mm-yyyy',
        min: new Date(),
        max: _max
        }

        $http.get(ServiceBasePath + 'settings/1').
            success(function (data) {
                _max = data.MaxDays;
                $scope.config.duration = data.Duration;
                });
        }

如果我在声明中设置_max 值,并将服务结果排除在外,它就可以正常工作。 我认为问题在于该服务在 datepicker 加载之前没有返回,但它似乎适用于我拥有的另一个字段(不是 datepicker):

                    <label>Duration (in minutes):</label>
                    <input type="number" id="duration" ng-model="duration" min="{{config.duration}}"  />

如何从$http.get 的结果中加载要加载的日期选择器设置?

【问题讨论】:

    标签: javascript angularjs asp.net-web-api datepicker pickadate


    【解决方案1】:

    改变

        $http.get(ServiceBasePath + 'settings/1').
            success(function (data) {
                $scope.dpoptions.max = data.MaxDays; //change this to scope variable
                $scope.config.duration = data.Duration;
                });
        }
    

    【讨论】:

    • 这不起作用。如果我在$scope.spoptions.max = data.MaxDays; 之后设置断点,它看起来已经设置了它,但是当我检查日历时它没有生效。我认为它设置得太晚了(在 http.get 返回并设置 max 属性时已经创建了日历)。还有其他建议吗?谢谢
    猜你喜欢
    • 2018-06-12
    • 1970-01-01
    • 2019-04-20
    • 2017-07-08
    • 2017-01-08
    • 2022-06-13
    • 1970-01-01
    • 2017-10-21
    • 2021-11-11
    相关资源
    最近更新 更多