我正在开发一个角度社交应用,我几乎没有与范围绑定相关的问题。 我有来自http服务的范围数据,其列出了用户的订户。每当在搜索中 用户搜索任何用户并想要添加他,然后此时我进行http呼叫并返回订户列表的更新数据。但是,如果不刷新页面,它就不会在视图中更新。我可以使用间隔,但我不认为它会是解决方案,因为它会通过定期的http请求给我的服务器带来更多的负载。
JS
this.loadsubscribers = function (){
myService.subscriber().then(function(response){
$scope.subscriber = response.data;
});
}
// i can make interval call for getting subscriber list but this will put load to my server.
$interval(function(){
this.loadsubscribers();
}.bind(this), 10000);
this.loadsubscribers();
当用户点击添加订阅者按钮时,我需要更新此范围: 这里当用户点击添加用户检查功能时,调用并通过进行http调用将该用户添加到用户列表。 aftre保存数据我将当前的订户列表返回到http成功。但它没有更新视图。
$scope.checkit = function(value,id,firstname,str){
if(text === 'get along'){
$http.post(baseurl+"ajax/subscriber_post", "subscriber_id="+value).success(function(data){
//here i have to update scope subscriber and
// refresh view as you can see i am doing it but it doesn't update view.
$scope.subscriber =data;
growl.addSuccessMessage( firstname+" is your fellow now");
$scope.datatocheck.push(value);
$scope.Checkfriend(value);
});
}
间隔工作但我不想使用它。那么当数据不需要任何同步更新时,最好的方法是什么。
答案 0 :(得分:0)
更改此行:
$scope.subscriber =data;
对此:
$scope.$apply(function() {
$scope.subscriber =data;
});
答案 1 :(得分:0)
试试这个:
$scope.$eval(function() {
$scope.subscriber = data;
});
如果您仍然遇到摘要循环问题,请尝试使用$evalAsync
代替$eval
。