使用{{...}}和没有{{...}}和角度指令之间有什么区别?

时间:2016-08-11 05:03:48

标签: angularjs angularjs-directive

实际上我在使用角度指令时何时使用{{ }}以及何时不使用{{ }}

时感到困惑

例如:

<div data-ng-init="isHidden=false">
    <div data-ng-show="isHidden">
        ...
    </div>
</div>

<div data-ng-init="isHidden=false">
    <div data-ng-show="{{isHidden}}">
        ...
    </div>
</div>

我对这些语法感到困惑?这些之间有什么区别?什么时候用?在此先感谢:)

5 个答案:

答案 0 :(得分:1)

这一切都在这里解释:Difference between double and single curly brace in angular JS?

快速回答:

  

{{}}是Angular表达式,在您希望时非常方便   写东西给HTML

     

不要在已经表达的地方使用这些!

     

例如,指令ngClick处理中间写入的任何内容   引号为表达式

答案 1 :(得分:1)

除了&#34;外观&#34>没有区别。如果你想在html正文中的任何地方写数据,你需要使用{{value}}语法

<div>{{value}}</div>

答案 2 :(得分:0)

public String getFiled1Name() throws NoSuchFieldException, SecurityException{ return this.getClass().getDeclaredField("field1").getName(); } 在这种情况下,data-ng-show = false,从数据-ng-init取得静态,如果你已经给定为真,那么它返回True。

但是这里

<div data-ng-init="isHidden=false">
    <div data-ng-show="isHidden">
        ...
    </div>
</div>

{{}}被称为角度表达最重要的概念之一 它根据您的App.js文件中编写的任何条件直接评估if isHidden = true或False。 例如:

<div data-ng-init="isHidden=false">
<div data-ng-show="{{isHidden}}">
    ...
</div>

<div data-ng-init="isHidden=YourVariable">
<div data-ng-show="{{isHidden}}">
    ...
</div>

答案 3 :(得分:0)

如果您在为属性分配值时询问何时使用{{}},何时不在。

这取决于指令的绑定类型。 '@'或'='

所以在这里,您必须使用: data-ng-show="{{isHidden}}"如果指令范围data-ng-show的绑定类型为'@',则表示data-ng-show将需要字符串值。因此,在这种情况下,如果您保留data-ng-show="isHidden",则会将数据显示的值视为“isHidden”,但data-ng-show="{{isHidden}}"将获取$scope.isHidden的值并分配给data-ng-show }。

现在,如果指令范围data-ng-show的绑定类型为'=',则表示data-ng-show将期望来自范围的值。因此,data-ng-show="isHidden"本身将获取$scope.isHidden的值并分配给data-ng-show

注意:所有默认HTML属性都需要一个字符串,因此您必须使用{{}}作为默认HTML属性。

答案 4 :(得分:-1)

除非在value的DOM中使用它们,否则没有这样的主要区别。

  1. 当使用以下内容时:

    <div data-ng-show="isHidden">

  2. 然后,评估表达式并根据它的相应值,ng-show隐藏或显示div。但是,当使用浏览器开发人员工具检查HTML时,无法看到isHidden的值。

    1. 当使用以下内容时:

      <div data-ng-show="{{isHidden}}">

    2. 在这种情况下,可以从开发人员工具中看到isHidden的值,并且表达式的其余部分的计算结果与(1)的结果相同。