如何在响应为false时清除列表

时间:2015-07-06 10:05:35

标签: angularjs multidimensional-array angularjs-directive angularjs-scope

HTML

<div ng-repeat="con in connectionArray"  ng-if="con.account_type=='user'">
    <p style="display:inline-block;width:160px;" class="con_name">
        <img class="teamImg" ng-src="{{ con.account_image }}">
        <span class="con_item">Profile: </span>
        <span class="con_user">{{ con.account_name }}</span>
    </p>
</div>

angularjs

yourteamService.listConnections(args).then(function(response) {
    if(!response.status){
        alert("No Connections");
    }else{
        $scope.connectionArray = response.accounts;
    }
    $scope.getListTeams = false;
}, 
function(response) {
});

在这里,我可以使用$ scope.connectionArray列出连接。当响应为false时,我需要清除连接列表。怎么做。

2 个答案:

答案 0 :(得分:0)

正如@Jax所说,你应该:

if(!response.status){
    alert("No Connections");
    $scope.connectionArray = [];
}

另外,我建议您使用.success().error()代替.then(),假设您在服务中调用了API。这样你就可以摆脱处理HTTP响应的麻烦。

希望这有帮助!

以下是我发现的有用链接:http://www.peterbe.com/plog/promises-with- $ http

答案 1 :(得分:0)

ng-repeat在页面的各处创建了很多听众。因此,如果您的数组采用[]值,Angular将捕获它并立即重新加载您的页面。 只是,如果你允许我给你一个建议:尝试使用ng-show而不是ng-if。如果语句为真,则ng-if显示您的HTML元素(与ng-show相同)。但ng-show加载元素。 Ng-如果没有。 它可以防止你后来很难找到的一些错误。