私の頭を数時間壊していましたが、今はAngular2の問題だと確信しています。Angular2テンプレートの問題は二重ではありません(!! +)
シナリオ:私はPHP "isLiked": "1"
からJSONでtinyintを取得します。 JSONのため、tinyintはJavascriptのブール値ではなく文字列として解釈されるので、これをブール値に変更するには良い0,235,を使用しています。
<i class="glyphicon {{ (!(!!+post.isLiked)) ? 'glyphicon-heart-empty' : 'glyphicon-heart' }}"></i>
下線テンプレートを持つバックボーンで完璧に動作するために使用このコード:私が行う必要がある私のAngular2テンプレートで
。しかし、それはAngular2が方法を変える何かをするようです!! + "0"が評価されます!
Chromeのコンソール: !!+"0"
はfalse
を返します。バックボーン+下線で
: <% !!+"0" %>
テンプレートではfalse
を示します。
角度2: {{ !!+"0" }}
は、true
を示しています。
ここにはそれのための遊び場http://plnkr.co/E3YGYeQ5ZZIRh8JxsUN6があります。
false
は、Angularが何かをする前に、index.html内の単純なJavascript document.write(!!+"0")
から来ています。
true
は、src/app.ts
テンプレートです。
何か不足していますか?
が、 '!! + post.isLikではなく' post.isLiked == true'と書くとどうなりますか?エド? – VirginieLGB
post.isLikedは実際には「0」または「1」(文字列)であり、真または偽ではないため、動作しません。 – Growiel
それを試してみませんか? JavaScriptで動作します – VirginieLGB