2016-02-25 58 views
1

在角火documentation,这里有两行,我想了解:

// To make the data available in the DOM, assign it to $scope 
    $scope.data = obj; 

// For three-way data bindings, bind it to the scope instead 
    obj.$bindTo($scope, "data"); 

他们在做同样的事情?两者都绑定到3路数据绑定的范围吗?

回答

3

不,他们不会做同样的事情。这将是一个非常愚蠢的API。 :-)

运行$scope.data = $firebaseObject(ref)结合在火力地堡位置范围的数据。在火力地堡数据库中的数据的任何更新,将被自动反映在范围和由此 - 如果你的HTML元素绑定到$scope.data - 还可以在屏幕上更新。该流程是单向的:从数据库到屏幕。

调用obj.$bindTo($scope, "data")无论在火力地堡位置中的数据绑定到范围听更改$scope.data它然后发送回火力地堡数据库中自动。所以这创建了一个双向的三向绑定。在HTML更新发送到数据库,对数据库的更新被发送到屏幕上。

这一切都很好记录,例如在这篇博文"Three-Way Data Binding with Firebase and Angular"。常规的AngularFire文档还包含有关three-way data binding的很好的部分。

+0

感谢弗兰克。现在明白了。 – Nexus23