2016-05-11 9 views
0

Ich benutze AngularJS 1.4 für meine App. Ich habe einige Attribute in meinen HTML-Vorlagen, die logischen Operatoren wie:JavaScript-Fragmente in HTML-Attributen: Sonderzeichen

<p ng-if="!edit.model && !model.length">...</p> 

Mein Texteditor die && als Fehler markiert, vermutlich weil es nicht HTML-entkam. Soll ich es wirklich zu &amp;&amp; ändern? Es ist nicht so, dass ich eine ambiguous ampersand benutze.

+0

Sie sollten keine Probleme mit && in einem ng-if haben. Funktioniert das ng-if mit einzelnen booleschen Auswertungen? Sind Sie sicher, dass Angular transpiliert? – dYale

+1

Klingt wie ein Problem mehr mit Ihrem Texteditor als Ihr Code – winhowes

+0

In Fragen wie diesem ist es gut zu erwähnen, _welche_ Editor Sie verwenden. –

Antwort

1

Sollte ich wirklich zu &amp;&amp; ändern?

Nein. Niemals.
Oder ja, wenn Ihre Priorität ist Ihre aktuelle Editor-Syntax-Engine anstelle der Funktionalität Ihrer Anwendung.

Mein Texteditor markiert den & & als Fehler, vermutlich, weil es nicht HTML-escaped wird.

Weil es dumm zu überSchutz (Generalist) mit HTML Codes.


Und es ist eine berechtigte Frage von Ihnen, lassen Sie uns einige Beispiele sehen:

Diese funktioniert ganz gut:
<p> 
    <input type="checkbox" id="hello" ng-model="hello"> 
    <label for="hello">Say only Hello!</label> 
</p> 
<p> 
    <input type="checkbox" id="goodbye" ng-model="goodbye"> 
    <label for="goodbye">Say only Goodbye!</label> 
</p> 
<h1 ng-show="hello&&!goodbye">Hello!</h1> 
<h1 ng-show="!hello&&goodbye">Goodbye!</h1> 

sehen auf https://plnkr.co/edit/93LAQJJ1bwTNPteLCv5Q?p=preview.

Aber diese nicht:
[..] 
<p> 
    <input type="checkbox" id="not" ng-model="not"> 
    <label for="not">Say only Not!</label> 
</p> 
<h1 ng-show="hello&&!not">Hello!</h1> 
<h1 ng-show="!hello&&not">Not!</h1> 

bei https://plnkr.co/edit/HRVigpQCCg1hQCW25Xgk?p=preview See.

Aber diese wird:
<p> 
    <input type="checkbox" id="not" ng-model="not"> 
    <label for="not">Say only Not!</label> 
</p> 
<h1 ng-show="hello && !not">Hello!</h1> 
<h1 ng-show="!hello && not">Not!</h1> 

sehen auf https://plnkr.co/edit/u3uNt9xHMnvtI0HZynlJ?p=preview.

Es wird so lange in Ordnung, wie Sie keinen Wert legen, die einen HTML-Code enthält.

+0

Danke, ich nehme dann an, dass es valides HTML ist, ein '' '' '' zu haben. Ich habe [einen Fehlerbericht] (https://github.com/atom/language-html/issues/116) gegen den Editor eingereicht. – z0r