我正在尝试使用Angular JS将select控件绑定到数组。在包含select的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"/>
页面加载时,下拉列表为空,但数组已正确填充。但是,如果我在上面的文本框中键入任何内容,它会在键入第一个字符后更新下拉列表。
为什么在我填充数组时不会立即更新,我该怎么做呢?
答案 0 :(得分:2)
听起来像是典型的外部消化周期问题。在你获得国家之后,请确保你调用$ scope。$ apply(),或者将请求(jQuery或其他)包装在$ scope附近。$ apply(function(){....});