1. ホーム
  2. angularjs

[解決済み】angular.jsのインライン条件式

2022-04-13 07:32:45

質問

angularでng-showなどを使用する以外に、条件付きでコンテンツを表示する方法はないのでしょうか。例えば、backbone.jsでは、テンプレート内のインラインコンテンツで次のようなことができます。

<% if (myVar === "two") { %> show this<% } %>

しかし、angularでは、htmlタグで囲まれたものの表示と非表示に制限されているようです。

<p ng-hide="true">I'm hidden</p>
<p ng-show="true">I'm shown</p>

htmlタグでコンテンツをラップするのではなく、{{}}を使用するだけでインラインコンテンツを条件付きで表示・非表示にするためのangularでの推奨される方法は何でしょうか?

どのように解決するのですか?

EDIT 以下、2Toadさんの回答 は、あなたが探しているものです アップブートする

Angular <= 1.1.4 を使用している場合は、この回答で十分です。

これに対する答えをもう一つ。可能な解決策のリストというよりも、解決策の "exact" の試みなので、別の答えを投稿しています。

以下は、"immediate if"(通称iif)を行うフィルターです。

app.filter('iif', function () {
   return function(input, trueValue, falseValue) {
        return input ? trueValue : falseValue;
   };
});

で、このように使うことができます。

{{foo == "bar" | iif : "it's true" : "no, it's not"}}