javascript - Angular 选择延迟加载项目的默认值

标签 javascript angularjs

所以我有以下 Controller :

    app.controller('ProfileController', ['$http','$sessionStorage','api', '$scope','Session', function ($http,$sessionStorage, api, $scope, $state, Session) {

    $scope.titles = {};
    $scope.selected_title = $sessionStorage.activeUser.user.title.id;

    $http.get(api.getUrl('title',null))
        .success(function(response) {
            $scope.titles = response;
        });

}]);

现在我有以下选择:

<select ng-init="selected_title.id" class="form-control" ng-model="selectedItem" ng-options="item as item.name for item in titles"></select>

但是,由于 select 的选项是使用 http 加载的,因此它将在页面加载后加载,因此默认值为空。

谁能告诉我如何避免这种情况?

最佳答案

ngInit 不会那样工作,它不是默认值。

    app.controller('ProfileController', ['$http','$sessionStorage','api', '$scope','Session', function ($http,$sessionStorage, api, $scope, $state, Session) {

    $scope.titles = [];

    $http.get(api.getUrl('title',null))
        .success(function(response) {
            $scope.titles = response;
            for (var i = 0; i < response.length; i++) {
                 if (response[i].id == $sessionStorage.activeUser.user.title.id) {
                      $scope.selectedItem = response[i];
                      break;
                 }
            }
        });

}]);

并从您的选择中删除 ngInit

Documentation for ngInit.

关于javascript - Angular 选择延迟加载项目的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811029/

相关文章:

javascript - 变换 : translateX() issue for kendo-mobile-switch on ngDialog in AngularJS

javascript - ng-if block 中的函数不起作用

angularjs - 错误 : [ng:areq] Argument Controller is Not a Function

php - 如何访问从 PHP 中的 HTTP POST 请求获取的数组对象的属性?

java - 使用java从服务器端的URL中提取参数

javascript - 在阻塞代码之前和之后做一些事情

javascript - 使 jQuery 放弃特定 div 类的操作

javascript - 在 HTML/Javascript 中,无论鼠标位置如何,我可以通过坐标获取元素吗?

javascript - 寻找按子数组中的值对数组进行分组

javascript - 使用 Angular UI Bootstrap 制作轮播表单