HTML属性中的JavaScript片段:特殊字符

时间:2016-05-11 02:16:55

标签: javascript angularjs html5

我在我的应用中使用AngularJS 1.4。我的HTML模板中有一些属性使用逻辑运算符,例如:

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

我的文本编辑器将&&标记为错误,大概是因为它没有HTML转义。我真的应该改为&amp;&amp;吗?这不像我使用ambiguous ampersand

1 个答案:

答案 0 :(得分:1)

  

我应该真的将其更改为&amp;&amp;吗?

否。从不。
或者是,如果您的优先级是您当前的编辑器语法引擎而不是您的应用程序的功能。

  

我的文字编辑器标志着&amp;&amp;作为一个错误,大概是因为它没有HTML转义。

因为愚蠢过于保护(通才)HTML Codes

这是您的有效问题,让我们看一些例子:

可行就好了:
<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>

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

但是,这赢了
[..]
<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>

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

但是,
<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>

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

只要您没有放置包含HTML代码的值,就会很好