数据未在第一次Ajax调用时绑定到Select

时间:2018-03-07 14:21:43

标签: javascript angularjs

修改 我注意到的一个不寻常的事情是,如果我从父SELECT中选择一个选项(它激活AJAX调用以带来数据以绑定下一个SELECT),如果我立即尝试打开它,它继续显示没有选项但是如果我等待的情侣几秒钟,我能看到选项!

我第一次尝试AngularJS并遇到一个问题,其中SELECT控件没有绑定FIRST Ajax调用,但是当第二次进行AJAX调用时显示项目。 AJAX在另一个下拉列表的更改事件中被触发

var app = angular.module('MyApp', []);

app.controller('MyController', function ($scope, $window) {
    $scope.singleSelect = ' ';

    $scope.IsVisible = false;

    $scope.GetValue = function () {

        $scope.IsVisible = true;
        $scope.DefaultLabel = "Loading.....";



        $.ajax({
            type: "POST",
            url: "../ContentPages/frmManualAccess.aspx/BindDelegationLevel",
            data: "{pDelegationLevel :'ALL'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",

            success: function (msg) {

                console.log(JSON.parse(msg.d));

/* Gives array of 3 objects 
[{"DelegationCode":"Customer","DelegationName":"Customer"},
 {"DelegationCode":"Segment","DelegationName":"Segment"},
 {"DelegationCode":"SBUM","DelegationName":"Customer"}]
*/
                $scope.myOptions = JSON.parse(msg.d); 
                $scope.defaultDelegationLevel = $scope.myOptions[0].DelegationCode;
            },

            error: function (xhr, errorType, exception) {

                var varResponseText = jQuery.parseJSON(xhr.responseText);

                alert(varResponseText.Message);
            }
        });


    }

});

在HTML中,我试图绑定的SELECT位于

之下
<select ng-model="defaultDelegationLevel" 
   ng-options="option.DelegationName as option.DelegationCode for option in myOptions" >
</select>

我不知道为什么会发生这种情况,请在这个问题上提供帮助。此外,空选项显示为我尝试删除的第一个选项。

0 个答案:

没有答案