簡體   English   中英

Angularjs ng-show == Id?

[英]Angularjs ng-show == Id?

我正坐在一個問題上試圖弄清楚,然后出乎意料地做了一些有效的事情! :)

但我不知道它為什么起作用?

如果有人可以向我解釋,我將不勝感激。

我想要做的是:使用 Id 值來確定按鈕是否應該顯示,例如:

如果應該顯示 Id == 1 按鈕。

如果 Id >= 2 按鈕應該隱藏。

我還有另一個事件,我手動切換 Id 並在更改值時正確顯示/隱藏按鈕。

HTML

令我難以置信的是ng-show="S == ph[0].PhaseId"因為,在我的解釋中,我說它應該由 Id 確定。 並且通過這種編碼,它沒有(在我的意義上)顯示它將值與正確的 Id 進行比較的位置。

 <button ng-if="ph" type="button" class="col button button-small button-dark" ng-init="showMe(ph);" ng-show="S == ph[0].PhaseId">
Check In
</button>

Javascript

 $scope.showMe = function()
  {  
        $scope.S = true;
  }

根據經驗,只需測試您放入ng-show (或ng-ifng-hide )中的確切代碼,並驗證在特定條件下評估為true 在這種情況下$scope.S = true表達式S == ph[0].PhaseId評估為true 為什么? 因為==工作方式與其他語言略有不同,所以您可能需要===

例如true == 1; 評估為true但為true === 1; 評估為false 這里有更好的參考。

嘗試用===改變==

我沒有完全理解您的問題,但查看了查詢,似乎因為您最初調用的是showMe() ,所以您的 bool S的值將變為true 現在對於1==true它將返回 true 而對於將返回 false 的任何其他值。 所以它在id為 1 時顯示,並為任何其他值隱藏。

問題是您正在使用非嚴格比較('==')並且沒有比較值的類型。 true 值是 1(基本上),因此 true == 1 將返回 true,而 true == 2 將返回 false。 這是一個非常簡短的解釋,但這就是我的看法:-)

只需在 ng-show 中使用以下內容。 當值為 1 時顯示,否則隱藏。

ng-show="ph[0].PhaseId"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM