我有以下代码使用ng-repeat显示数据表,最初模型(数组)将没有数据,但是根据请求api它接收一些数据,我正在尝试更新我的模型,但不幸的是我的视图没有得到模型更新的刷新,虽然我看到我的模型包含从api调用收到的新数据。
组件代码:
app.component('fooList', {
bindings: {
foo: '<'
},
templateUrl: '/app/foo.html',
controllerAs: 'list',
controller: function ($http,$scope) {
let list=this;
list.search=()=>{
$http.get('/ui/foo/'+ list.searchCriteria)
.success(response=>{
list.foo.searchResults=response.searchResults;
})
}
}
});
HTML视图:
<tr ng-repeat="foo in ::list.foo.searchResults">
<td>{{::foo.name}}</td>
<td>{{::foo.address}}</td>
</tr>
到目前为止,我已经尝试了以下内容但没有帮助
最初将list.foo.searchResults设置为undefined,这是第一次正常工作,但是如果我发送不同的搜索条件,那么它又不会刷新。
$ scope。$ apply(),我讨厌这样做,但尝试了正在抛出摘要错误。
在$ http的成功里面我试过下面的代码 list.foo.searchResults = 0; list.foo.searchResults.push.apply(list.foo.searchResults,response.searchResults);
再创建一个子组件并用子模板替换我的html并移动代码以将数组填充到该组件中。
非常感谢任何帮助。
答案 0 :(得分:1)
尝试删除::或者你可以给一个jsfiddle工作
答案 1 :(得分:1)
您必须删除一次性数据绑定。
Property Get
答案 2 :(得分:1)
::
用于提供单向数据绑定,请将其删除然后尝试
::
如果您使用此功能,即使您的模型已更新,也不允许更新视图。
答案 3 :(得分:0)
您可以尝试在从服务中获取数据时在视图部分进行更新,在控制器部分中使用 $ scope。$ apply(),从服务中获取价值(意味着存储在数组)。
或从html部分删除 :: ,因为它在angularjs中提供了一种方式绑定。