Angularjs在bootstrap selectpicker中不起作用

时间:2015-04-01 08:23:53

标签: json angularjs bootstrap-select

我正在创建一个Web应用程序,我正在使用bootstrap selectpicker进行选择..但我正在使用angularjs来填充选择选择器..我有2个选择在第一个选择值的基础上填充一个内容而不重新加载。 。我可以在没有selectpicker的情况下完美地工作,而当使用selectpicker时它不起作用..我的代码是

<div class="form-group" data-ng-controller="MARK_ENTRY_CONTROLLER">
    <div class="row">
        <div class="col-md-6  " style="margin-top: 7px;">
            <label>Select Class</label>
        </div>
        <div class="col-md-6 text-center">
            <select class="form-control" title="Select Class" 
                name="fromClass" ng-change="EXAM_LIST_JSON(fromClass)"
                ng-model="fromClass"
                ng-options="fromClass.id as fromClass.course + ' ' + fromClass.section for fromClass in ALL_CLASS">
                </select>
        </div>
    </div>
    <div class="row" style="height: 10px"></div>
    <div class="row">
        <div class="col-md-6  " style="margin-top: 7px;">
            <label>Select Examination</label>
        </div>
        <div class="col-md-6 text-center" >
            <select class="form-control" name="examination"
                ng-change="SUBJECT_LIST_IN_EXAM_JSON()"
                ng-model="examination"
                ng-options="examination.id as examination.name for examination in EXAM_LIST"></select>
        </div>
    </div>

和控制器是

<script>
    function MARK_ENTRY_CONTROLLER($scope, $http) {
        $http.get("<%=request.getContextPath()%>/ALL_CLASS_JSON?AAdvisorId=${uid}").success(function(response) {
                        $scope.ALL_CLASS = response;
                        $scope.EXAM_LIST_JSON = function(id){
        $http.get("<%=request.getContextPath()%>/EXAM_LIST_JSON?fromClass="+id)
                                .success(function(response) {
                                    $scope.EXAM_LIST = response;
                                    $scope.$apply();
                            });
                        }

                    });
    }
</script>

在控制器中,使用json格式从json文件获取数据列表。 请帮帮我......

1 个答案:

答案 0 :(得分:8)

bootstrap-select会隐藏所有选择器,选择器的数据会在执行命令$(&#39; select&#39;)。selectpicker()。

之后出现。

但如何解决问题呢?

我遇到了类似的问题:

<select class="fontsize" data-style="btn-info" name="fontsize" ng-controller="fontSize">
    <option data-ng-repeat="size in sizes" name="{{size}}" value="{{size}}">{{size}}</option>
</select>

我的控制器

app.controller('fontSize', function($scope, $http) {
    $http.get("/getSelector/font-size")
        .success(function(response) {
            $scope.sizes = response.records;
            // TODO: How to refresh the selectpicker after changing of scope?
        });
});

您可以在收到数据后刷新selectpicker:

$scope.$watch(function() {
    $('.fontsize').selectpicker('refresh');
});

好的,我希望这对你有帮助。