59

スコープ変数が未定義かどうかを確認する方法は?

これは動作しません:

<p ng-show="foo == undefined">Show this if $scope.foo == undefined</p>
4

10 に答える 10

69

これを行う最もクリーンな方法は次のとおりです。

<p ng-show="{{foo === undefined}}">Show this if $scope.foo === undefined</p>

コントローラーでヘルパー関数を作成する必要はありません!

于 2015-05-02T20:52:40.993 に答える
9

訂正:

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' );
}

フィドル: http://jsfiddle.net/oakley349/vtcff0w5/1/

于 2014-11-20T15:02:47.710 に答える
3

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>

于 2016-12-05T00:06:25.850 に答える
1

二重パイプ操作を使用して、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>

JSFiddle でデモを確認する

二重パイプの技術的な説明については、次のリンクを参照することをお勧めします: https://stackoverflow.com/a/34707750/6225126

于 2018-02-18T08:14:39.683 に答える