1

我正在尝试使用 Angular JS 将选择控件绑定到数组。在包含选择的 div 上,我正在使用 ng-init 调用函数

<div id="refundformcontainer" ng-controller="RefundControl" ng-init="init()">

init 函数调用一个服务,该服务返回一个国家列表并填充一个如下所示的数组:

PossibleCountries: 
[  
    { 
        countryId: 32
        name: ARGENTINA
    }
    ,
    { 
        countryId: 40
        name: AUSTRIA
    }
    .
    .
    ,
    { 
        countryId: 858
        name: URUGUAY
    }
] 

我有这样的选择控件:

<select id="Country" ng-model="Voucher.country" ng-options="v.name for v in PossibleCountries"></select>

选择选项实际上位于文本输入下方,该文本输入也使用角度绑定

<input type="text" id="vouchernumber" data-ng-model="Voucher.voucherNumber"/>

页面加载时下拉列表为空,但数组已正确填充。但是,如果我在上面的文本框中输入任何内容,它会在输入第一个字符后更新下拉列表。

为什么我填充数组后它没有更新,我如何让它这样做?

4

1 回答 1

2

听起来像是一个典型的外部消化周期问题。在获得国家/地区后,请确保调用 $scope.$apply(),或将请求(jQuery 或其他)包裹在 $scope.$apply(function() {....});

于 2013-08-26T12:45:00.967 回答