Angularjs 角度JS中双大括号和单大括号的区别?

Angularjs 角度JS中双大括号和单大括号的区别?,angularjs,Angularjs,我对这个棱角分明的世界还不熟悉,我对双大括号的使用有点困惑{{} 单个大括号{}或有时不使用大括号来包含指令中的表达式 ng class={expression} 像{{obj.key}这样的普通数据绑定 ng hide='mydata=='red' {{}-双大括号: {{}是角度表达式,在您希望将内容写入HTML时非常方便: <div> {{planet.name == "Earth" ? "Yeah! We 're home!"

我对这个棱角分明的世界还不熟悉,我对双大括号的使用有点困惑{{} 单个大括号{}或有时不使用大括号来包含指令中的表达式

  • ng class={expression}
  • 像{{obj.key}这样的普通数据绑定
  • ng hide='mydata=='red'
  • {{}-双大括号:
    {{}
    是角度表达式,在您希望将内容写入HTML时非常方便:

    <div>
        {{planet.name == "Earth" ? "Yeah! We 're home!" : "Eh! Where 're we?"}}
    </div>
    
    <!-- with some directives like `ngSrc` -->
    <img ng-src="http://www.example.com/gallery/{{hash}}"/>
    
    <!-- set the title attribute -->
    <div ng-attr-title="{{celebrity.name}}">...
    
    <!-- set a custom attribute for your custom directive -->
    <div custom-directive custom-attr="{{pizza.size}}"></div>
    
    {}-单花括号:
    {}
    我们知道它代表JavaScript中的对象。这里也没有什么不同:

    <div ng-init="distanceWalked = {mon:2, tue:2.5, wed:0.8, thu:3, fri:1.5, 
    sat:2, sun:3}">
    
    没有大括号: 如前所述,在表达式中使用无括号。很简单:

    <div ng-if="zoo.enclosure.inmatesCount == 0">
        Alarm! All the monkeys have escaped!
    </div>
    
    
    警报!所有的猴子都逃走了!
    

    关于
    {{}
    它也被用作观察者。。
    为了更好的表现,请尽量避免

    我知道这是一篇老文章,可能有点离题,但这是对@DonD和@GafrieldKlon的回应

    如果您在使用
    {}
    时使用
    ng bind
    指令,not,则似乎实际放置了一个观察者。话虽如此,我相信@riyas上面的回答仍然部分正确,因为避免
    {{}}
    通常在性能方面是更好的,但不是出于所述的原因


    另一篇文章对此进行了更详细的解释。

    我们可以在ng src属性中使用{{}和ng include指令。就像注释中提到的人一样,双大括号{}应该放在引号之间的ng src指令中。但为什么ng src能够做到这一点?有没有一种特殊类型的指令的名称,它采用了{{}内引号?{{foo bar}}和{{{foo bar}之间有什么区别吗?我自己必须做一些研究才能完全理解它,但我认为这篇博文与@CodeHater的答案真的很有帮助,你是说{}降低了性能吗?你能提供一个来源来证明这一点吗?有人能证实吗?
    <span ng-style="{'color' : 'red'}">{{viruses.length}} viruses found!</span>
    
    <div ng-class="{'green' : vegetable == 'lettuce', 
    'red' : vegetable == 'tomato'}">..
    
    <div ng-if="zoo.enclosure.inmatesCount == 0">
        Alarm! All the monkeys have escaped!
    </div>