我正在使用angularfire 0.5.0在我的一个控制器中设置一个名为tokenRate的范围变量,并在相应的HTML文件中显示tokenRate的值,如下所示:
控制器:
function TokensCtrl($firebase, $scope) {
$scope.tokenRate = $firebase(new Firebase("https://TEST_URL.firebaseio.com/token_rate"));
}
HTML:
<h1>Token rate is {{ tokenRate }}</h1>
我希望第一次显示该值,并在远程firebase上更改“token_rate”时自动更新。相反,tokenRate最初似乎未定义,并且在我更改远程firebase上的“token_rate”时不会更新。
数据同步正在发生,因为我能够从远程firebase接收“更改”事件。我猜测angularjs不知何故不知道对象的变化,因为在$ tokenRate上放一个$ watch不会触发任何东西。我可以通过这样做来显示我想要的行为:
var value = $firebase(new Firebase("https://TEST_URL.firebaseio.com/token_rate"));
value.$on("change", function() {
$scope.tokenRate = value.$value;
});
但每次都这样做似乎很荒谬。我不认为我在这里理解一些东西。设置$ scope.tokenRate变量以便它第一次显示并自动同步的正确方法是什么?