Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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
Javascript Angularjs 1.3+;单向与双向数据绑定_Javascript_Angularjs - Fatal编程技术网

Javascript Angularjs 1.3+;单向与双向数据绑定

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

我是Angular的新手,除了经典ng模型场景中模型值反映在视图中之外,不清楚在哪里需要双重数据绑定

例如,我是否需要为ng repeat变量进行双重绑定?或者对于可以在$watch中更改的变量,我需要它吗

我了解到单向数据绑定可以显著提高性能,所以我不想使用双重数据绑定,除非我真的需要它

比如说

 <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}}被监视,当它改变时,这个绑定被更新,这在性能上是缓慢的,因为在您的示例中,这个值没有被监视,它从来没有被检查过,如果在条件语句中使用,它只被计算一次


如果您想使用其中一个,则由您决定。如果值永远不会更改,则使用{{::}},因为它很快;如果值在将来将更改,则使用{{}

仅当您的模型不断更改时,使用双绑定才有用。 以防你的模式