我有一个带有2 md自动填充字段的视图绑定到值列表。
当我选择第一个字段时,我发送一个GET请求以获取要绑定到下一个字段的值列表。
我获取新列表并将第二个控件的值更新为新列表。
但是,在UI中,第二个列表的值内容未更新以显示新的列表值。
第二个控件没有刷新新值。
我尝试了$ scope。$ apply()。
但是,它不起作用。我的开发工具崩溃了。
function CompanyInfoCtrl($state, $scope, genericInfo) {
this.states = genericInfo.states;
this.cities = genericInfo.cities;
//when user Selects a State
//Update this.cities with the new ListOfCities in the selected State
//Call this method where field = this.cities
function(address, field) {
if(address && address.state)
return $http.get('http://localhost:8090/common/listofcitiesbystate/' + address.state).then(function(response){
field = response.data;
})
}
}
答案 0 :(得分:0)
模型没有被设置为Dirty状态,因此没有使用新值进行刷新。
在我的代码中,我之前将新值设置为: -
//where UiElementArrayList is a list of object and is bind to md autocomplete
//I need to update the list with new valueList based on User Action/Selection
//GET call to fetch new data
this.cities = response.data
这解决了问题: -
//1. Empty the array
//2. Push the elements from the Response array to the UiElementArrayList
//i.e.
while(this.cities.length > 0)
this.cities.pop()
for(i=0; i < response.data.length; i++)
this.cities.push(response.data[i])
这会将模型设置为脏状态并进行刷新,我可以看到新的List元素。 :)
如果您遇到同样的问题,请为此建议任何改进/更好的方法。