Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs ng绑定和插值{{}在角度_Angularjs - Fatal编程技术网

Angularjs ng绑定和插值{{}在角度

Angularjs ng绑定和插值{{}在角度,angularjs,Angularjs,两者之间有什么区别吗 {{}}和ng以角度绑定 我是个新手。我从使用{{}开始,然后在文档中找到了ng bind。我认为他们做的是相同的工作,但为什么会有一个额外的指令,如果没有,请说明区别。{{}可以在页面加载时闪烁,ng bind会正确隐藏表达式,直到它正确显示。官方文档中有一些提示: 通常,您不直接使用ngBind,而是使用 类似{{expression}}的双卷曲标记,类似但较少 冗长的 如果 浏览器会在其原始状态下即时显示模板 在Angular编译之前。由于ngBind是一个元素属性,

两者之间有什么区别吗 {{}}和ng以角度绑定


我是个新手。我从使用{{}开始,然后在文档中找到了ng bind。我认为他们做的是相同的工作,但为什么会有一个额外的指令,如果没有,请说明区别。

{{}可以在页面加载时闪烁,ng bind会正确隐藏表达式,直到它正确显示。

官方文档中有一些提示:

通常,您不直接使用ngBind,而是使用 类似{{expression}}的双卷曲标记,类似但较少 冗长的

如果 浏览器会在其原始状态下即时显示模板 在Angular编译之前。由于ngBind是一个元素属性,因此 在加载页面时,使绑定对用户不可见


它们之间最明显的区别是在使用
{{…}
时未设置样式的内容的闪存

但是,如果传递给
{{obj}
的对象和
ng bind=“obj”
的对象不是字符串,则两者之间存在更细微的区别

发件人:

根据您使用的是
{{…}
还是
ngbind
语法 将调用对象上的
.toJSON
.toString
函数 确定其代表性


在AngularJs中,ng bind指令可替代插值指令{{}。通过向HTML元素插入ng bind属性,我们可以将AngularJS数据插入其中

以下是一个例子:

 <div ng-controller="DemoController" >
  <span ng-bind="demoData.doThis()"></span>
</div>


关键区别在于ng bind属性不会在页面加载时显示Html内容,其中as INTERPOINTION指令在页面加载时显示为没有样式的内容闪烁。

除了上述答案

插值的性能问题:

正如《线程更好》中所解释的

ng bind
是一个指令,将在传递的变量上放置一个观察程序。因此,
ng bind
仅在传递的值确实发生更改时才适用


另一方面,括号将在每个$digest中进行脏检查和刷新,即使这不是必需的。

有时当我们在浏览器中加载应用程序时,我们会注意到在解析{{name}和加载数据之前,内容会闪烁几毫秒

这是因为模板是在AngularJS有机会进入并编译元素之前加载的。要解决此问题,可以使用ng斗篷指令

在第一种方法(即{}})中,AngularJS对表达式求值,然后将其替换为某个值,该值有时会保留为闪烁的双花括号,但ng bind通知AngularJS将表达式的内容放在元素本身中,从而节省了这段时间

注:
{{}如果页面中有数千个绑定,有时会导致性能问题。在这些场景中,我们应该使用ng bind。

另一个区别是
ng bind
插值
显示数据的方式。
ng bind
调用
toString()
方法,而
interpolation
使用自定义的“stringify”函数

例子
插值仅用于只读目的,不能在小胡子括号内为已在Typescript文件内声明的变量赋值


它们之间的基本区别在于,ng bind应该始终在元素内部使用,但插值指令可以在元素内部、外部和元素之间使用。

不是答案,但ng bind很容易通过ng bind html进行交换,ng bind html将实际的html文本放在元素内部而不是纯文本


因为我想知道(好的,只是)分钟,我也把它添加到这里。我的问题是,文本DOM资源管理器显示相同的输出

投票决定重新开放,因为这是一个明确的问题,但是这个问题可以从
<div ng-controller="showClockCtrl">
    <p>The current time is {{currentDateTime}}.</p>
    <p>The current time is <span ng-bind="currentDateTime"></span>.</p>
</div>

<div ng-controller="showClockCtrl">
    <p>MyObject is {{myObject}}</p>
    <p>MyObject is <span ng-bind="myObject"></span></p>
</div>

<script>
var showClockCtrl = function ($scope) {
    $scope.currentDateTime = new Date();
    $scope.myObject = {
        'key1': 'value1',
        'key2': 'value2',
        'key3': 'value3'
    }
};
</script>
The current time is "2017-11-18T15:09:59.429Z".

The current time is Sat Nov 18 2017 10:09:59 GMT-0500 (EST).

MyObject is {"key1":"value1","key2":"value2","key3":"value3"}

MyObject is [object Object]