[英]Angular js: Ng-switch is not updating after ng-click
在我的原始代碼中,我首先檢查用戶是否可以標記討論,如果他們可以使用ng-switch,如果他們標記它們,他們將看到成功消息:
<div ng-if="canFlag(discussion)">
<div ng-switch="isFlagging"
ng-click="flagDiscussion(discussion.id)">
<i ng-switch-when="false"
class="icon-flag"
aria-hidden="true"></i>
<div ng-switch-when="true"
ng-click="$event.stopPropagation()"
>Successfully flagged</div>
</div>
</div>
我想重構我的代碼,以便ng-click在false ng-switch條件內,並且我將刪除stopPropagation方法,例如:
<div ng-if="canFlag(discussion)">
<div ng-switch="isFlagging">
<div ng-switch-when="false"
ng-click="flagDiscussion(discussion.id)">
<i class="icon-flag" aria-hidden="true"></i>
</div>
<div ng-switch-when="true">Successfully flagged</div>
</div>
</div>
在第一個代碼中,ng-switch在ng-click之后工作,但是在第二個代碼中,ng-switch仍然是假的,即使在它被點擊時也是如此。 flagFlagging在flagdiscussion方法中切換為'true'。 因此,在單擊標志按鈕后,標志按鈕仍然存在且沒有任何變化。
我看到類似的帖子AngularJs:為什么我使用ng-click時不會更新ng-switch? 並將x.isFlagging添加到交換機,並在click語句后添加this.isFlagging = true,但添加了此項后,我甚至不再看到該標志按鈕。
任何人都知道為什么會這樣嗎?
js代碼:
$scope.flagDiscussion = function(id) {
service.flagDiscussion(id);
this.isFlagging = true;
};
嘗試: ng-switch on="isFlagging"
AngularJs:當我使用ng-click時為什么不更換ng-switch? 實際上有正確的答案,我只是忘了將范圍x添加到js中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.