为什么angularfire自动同步不能被angularjs识别?

时间:2014-01-13 03:57:56

标签: javascript angularjs firebase angularfire

我正在使用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变量以便它第一次显示并自动同步的正确方法是什么?

0 个答案:

没有答案