[英]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-if
或ng-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.