【问题标题】:$firebaseArray not returning expected value$firebaseArray 未返回预期值
【发布时间】:2015-06-13 10:19:45
【问题描述】:

我正在尝试获取$firebaseArray,但不是我期望的数组,而是length 0 的数组/对象。该对象包含$$added$error$getKey 等,但没有我期望的数据。

最奇怪的是,这段完全相同的代码在运行相同代码的不同计算机上正常运行。

这是我的代码(无关部分省略):

angular.module('myApp.services').factory('Props', ['$rootScope', '$firebaseArray', 'Refs', function($rootScope, $firebaseArray, Refs) {
  var service = {
    // initialized below
    user: null,

    init: function(user) {
      this.user = user;
      if (user) {
        this.user.feed = $firebaseArray(Refs.feed(user.email));
        $firebaseArray(Refs.props).$loaded(function(props) {
          this.user.props = props;
          console.log(props);
        });
      }
    }
  }
}]);

当我对this.user.props 执行ng-repeat 时,它是空白的(但仅在我的计算机上)。当我执行console.log(props) 时,它的length 为0(但仅在我的计算机上)。

什么可能导致这种行为?

【问题讨论】:

    标签: angularjs firebase angularfire


    【解决方案1】:

    我对您的错误的假设如下:

    this.user.props = props;
    

    我认为这是因为您包含了this,这并不意味着您现在在回调函数中。

    您可能想在此处更改一些内容。您可能不想调用您的函数参数user,而是使用其他名称,否则可能会引起很多混乱。

    让我知道这样的事情是否有效:

    angular.module('myApp.services').factory('Props', ['$rootScope', '$firebaseArray', 'Refs', function($rootScope, $firebaseArray, Refs) {
        var service = {
            // initialized below
            user: null,
    
            init: function(u) {
                this.user = u;
                if(this.user) {
                    this.user.feed = $firebaseArray(Refs.feed(this.user.email));
                    $firebaseArray(Refs.props).$loaded(function(props) {
                        user.props = props;
                        console.log(props);
                    });
                }
            }
        }
    }]);
    

    问候,

    【讨论】:

      猜你喜欢
      • 2013-09-04
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 2012-11-08
      • 2020-07-06
      相关资源
      最近更新 更多