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. Мне нужно очистить список соединений, когда ответ ложный. Как это сделать.
Ng-repeat создает множество слушателей повсюду на вашей странице. Поэтому, если ваш массив принимает значение [], Angular поймает его и перезагрузит вашу страницу немедленно. Просто, если вы позволите мне дать вам совет: попробуйте использовать ng-show вместо ng-if. ng-if показывает ваш HTML-элемент, если утверждение истинно (то же, что и ng-show). Но ng-show загружает элемент. Ng - если нет. Это может помешать вам некоторые ошибки, о которых трудно было бы узнать позже.
Как сказал @Jax, вы должны:
if(!response.status){
alert("No Connections");
$scope.connectionArray = [];
}
Также я предлагаю вам использовать .success()
и .error()
вместо .then()
, предполагая, что вы вызываете API в своей службе. Таким образом, вы можете избавиться от проблем с обработкой ответа HTTP.
Надеюсь это поможет!
Вот полезная ссылка, которую я нашел: http://www.peterbe.com/plog/promises-with- $ http