Javascript Angularjs 1.3+;单向与双向数据绑定
我是Angular的新手,除了经典ng模型场景中模型值反映在视图中之外,不清楚在哪里需要双重数据绑定 例如,我是否需要为ng repeat变量进行双重绑定?或者对于可以在$watch中更改的变量,我需要它吗 我了解到单向数据绑定可以显著提高性能,所以我不想使用双重数据绑定,除非我真的需要它 比如说Javascript Angularjs 1.3+;单向与双向数据绑定,javascript,angularjs,Javascript,Angularjs,我是Angular的新手,除了经典ng模型场景中模型值反映在视图中之外,不清楚在哪里需要双重数据绑定 例如,我是否需要为ng repeat变量进行双重绑定?或者对于可以在$watch中更改的变量,我需要它吗 我了解到单向数据绑定可以显著提高性能,所以我不想使用双重数据绑定,除非我真的需要它 比如说 <img ng-src="{{mySrc}}"> or <img ng-src="{{::mySrc}}"> <div ng-repeat="item in it
<img ng-src="{{mySrc}}"> or
<img ng-src="{{::mySrc}}">
<div ng-repeat="item in items"> or
<div ng-repeat="::item in ::items"> where items retrieved from $http
或
或
其中从$http检索的项目
2-way data binding直接指的是ng model
指令,它的意思是您可以在视图中更改模型值(通过输入ng model
),也可以通过编程进行更改,其中一个更改将复制到另一个和视图中
ng repeat
只是在摘要循环开始时计算的表达式,因此这不是双向数据绑定
就性能而言,angulars绑定过程使用脏检查,这并不理想,使用ng模型
与否对这一点没有影响。仅当模型值更改或您在angulars上下文中更改模型值时,摘要循环才会开始
在看到您提供的代码片段后,
{{::model}
表示法将简单地创建一个一次性绑定,这意味着该值在视图中永远不会更改,也不会被监视
不同的是{value}}被监视,当它改变时,这个绑定被更新,这在性能上是缓慢的,因为在您的示例中,这个值没有被监视,它从来没有被检查过,如果在条件语句中使用,它只被计算一次
如果您想使用其中任何一个,则由您决定。如果值永远不会更改,则使用{{::},因为它很快;如果值在将来更改,则使用{}双向数据绑定直接引用
ng model
指令,其含义是您可以在视图中更改模型值(通过输入ng model
)也可以通过编程进行更改,其中一个更改将复制到另一个和视图中
ng repeat
只是在摘要循环开始时计算的表达式,因此这不是双向数据绑定
就性能而言,angulars绑定过程使用脏检查,这并不理想,使用ng模型
与否对这一点没有影响。仅当模型值更改或您在angulars上下文中更改模型值时,摘要循环才会开始
在看到您提供的代码片段后,
{{::model}
表示法将简单地创建一个一次性绑定,这意味着该值在视图中永远不会更改,也不会被监视
不同的是{value}}被监视,当它改变时,这个绑定被更新,这在性能上是缓慢的,因为在您的示例中,这个值没有被监视,它从来没有被检查过,如果在条件语句中使用,它只被计算一次
如果您想使用其中任何一个,则由您决定。如果值永远不会更改,则使用{{::},因为它很快;如果值在将来更改,则使用{}双向数据绑定直接引用
ng model
指令,其含义是您可以在视图中更改模型值(通过输入ng model
)也可以通过编程进行更改,其中一个更改将复制到另一个和视图中
ng repeat
只是在摘要循环开始时计算的表达式,因此这不是双向数据绑定
就性能而言,angulars绑定过程使用脏检查,这并不理想,使用ng模型
与否对这一点没有影响。仅当模型值更改或您在angulars上下文中更改模型值时,摘要循环才会开始
在看到您提供的代码片段后,
{{::model}
表示法将简单地创建一个一次性绑定,这意味着该值在视图中永远不会更改,也不会被监视
不同的是{value}}被监视,当它改变时,这个绑定被更新,这在性能上是缓慢的,因为在您的示例中,这个值没有被监视,它从来没有被检查过,如果在条件语句中使用,它只被计算一次
如果您想使用其中任何一个,则由您决定。如果值永远不会更改,则使用{{::},因为它很快;如果值在将来更改,则使用{}双向数据绑定直接引用
ng model
指令,其含义是您可以在视图中更改模型值(通过输入ng model
)也可以通过编程进行更改,其中一个更改将复制到另一个和视图中
ng repeat
只是在摘要循环开始时计算的表达式,因此这不是双向数据绑定
就性能而言,angulars绑定过程使用脏检查,这并不理想,使用ng模型
与否对这一点没有影响。仅当模型值更改或您在angulars上下文中更改模型值时,摘要循环才会开始
在看到您提供的代码片段后,
{{::model}
表示法将简单地创建一个一次性绑定,这意味着该值在视图中永远不会更改,也不会被监视
不同的是{value}}被监视,当它改变时,这个绑定被更新,这在性能上是缓慢的,因为在您的示例中,这个值没有被监视,它从来没有被检查过,如果在条件语句中使用,它只被计算一次
如果您想使用其中一个,则由您决定。如果值永远不会更改,则使用{{::}},因为它很快;如果值在将来将更改,则使用{{}仅当您的模型不断更改时,使用双绑定才有用。 以防你的模式