属性値が 表現することはできません照合することに注意してください。それらはリテラル文字列値として解釈され、 と一致します。たとえば、ng-switch-when = "someVal"は 文字列 "someVal"と一致し、式 $ scope.someValの値とは一致しません。
だから、ドキュメントによると、あなたのケースを解決するために、次の例を取る:
<div ng-switch="hasUrl">
<span ng-switch-when="row.id.indexOf(':') < 0"> WONT SHOW </span> <!-- WILL NOT WORK EVER -->
<span ng-switch-when="makeItWork"> ALSO, WONT SHOW</span>
<span ng-switch-when="true">WILL NOT SHOW EITHER</span>
<span ng-switch-when="1">WILL SHOW</span>
</div>
はcarefullyatスコープ変数とその値を見て:
$scope.hasUrl = 1; /* NOTICE != true BUT 1*/
$scope.row = {};
$scope.row.id = "true:";
$scope.makeItWork = $scope.row.id.indexOf(':') > 0 ? 1 : 0;
console.log($scope.makeItWork); /* SEE THAT TRUE WILL BE LOGGED BUT IT STILL WONT SHOW */
のでng-switch
が式を評価するにもかかわらず、 ng-switch-when
と思われます。もし私があなただったら、私はちょうどng-if
に固執します。
FIDDLE固定フィドル
ので、問題は、あなたの質問に2 ansersをした後は何ですか?フィードバックをお願いしますか? – FRECIA