スコープ変数が未定義かどうかを確認する方法は?
これは動作しません:
<p ng-show="foo == undefined">Show this if $scope.foo == undefined</p>
スコープ変数が未定義かどうかを確認する方法は?
これは動作しません:
<p ng-show="foo == undefined">Show this if $scope.foo == undefined</p>
これを行う最もクリーンな方法は次のとおりです。
<p ng-show="{{foo === undefined}}">Show this if $scope.foo === undefined</p>
コントローラーでヘルパー関数を作成する必要はありません!
訂正:
HTML
<p ng-show="getFooUndef(foo)">Show this if $scope.foo === undefined</p>
JS
$scope.foo = undefined;
$scope.getFooUndef = function(foo){
return ( typeof foo === 'undefined' );
}
foo
がブール変数でない場合、これは機能します (つまり、その変数に何らかのデータがある場合にこれを表示したい場合):
<p ng-show="!foo">Show this if $scope.foo is undefined</p>
逆もまた同様です:
<p ng-show="foo">Show this if $scope.foo is defined</p>
二重パイプ操作を使用して、after ステートメントで値が未定義かどうかを確認できます。
<div ng-show="foo || false">
Show this if foo is defined!
</div>
<div ng-show="boo || true">
Show this if boo is undefined!
</div>
二重パイプの技術的な説明については、次のリンクを参照することをお勧めします: https://stackoverflow.com/a/34707750/6225126