【问题标题】:How to get the full object from firebase using a URL parameter如何使用 URL 参数从 firebase 获取完整对象
【发布时间】:2014-11-07 21:59:50
【问题描述】:

我正在尝试在 ionic 应用程序中创建两个视图。但是,当我使用 URL 参数从视图 1 转到视图 2 时,我只能从 Firebase 返回一个空对象,因此我的第二个视图没有显示任何内容。完全迷失在这里。

路由:

    .state('app.trials', {
    url: "/trials",
    views: {
      'menuContent' :{
        templateUrl: "templates/trials.html",
        controller: 'TrialsCtrl'
      }
    }
    })

  .state('app.trial', {
    url: "/trials/:trialId",
    views: {
      'menuContent' :{
        templateUrl: "templates/trial.html",
        controller: 'TrialCtrl'
      }
    }
    })

视图 1:/trials - 显示所有的试验,这是有效的。

<ion-list>
<ion-item ng-repeat="(trialId, trial) in trials | orderBy:'title'" href="#/app/trials/{{trialId}}">
{{trial.title}} | {{trialId}}
</ion-item>
</ion-list>

视图 1 的工厂:

.factory('Trial', function ($firebase, FIREBASE_URL) {
var ref = new Firebase(FIREBASE_URL);
var trials = $firebase(ref.child('trials')).$asArray();

var Trial = {
all: trials,    
get: function (trialId) {
  return $firebase(ref.child('trials').child(trialId)).$asObject();
}
};

return Trial;
})

视图 1 的控制器(TrialsCtrl):

.controller('TrialsCtrl', function ($scope, Trial) {
  $scope.trials = Trial.all;
  console.log($scope.trials);
})

视图 2:/trial - 应显示已在 /trials 中选择的试用版。

<ion-content class="has-header">
    <h1>{{trial.title}}</h1>    
</ion-content>

视图 2 的控制器(TrialCtrl):

.controller('TrialCtrl', function($scope, $stateParams, Trial) {
  $scope.trial = Trial.get($stateParams.trialId);
  console.log($scope.trial);
})

视图 2 中控制台的结果:

{$$conf: Object, $id: "3", $priority: null, $save: function, $loaded: function…}$$conf:   Objectbinding: fdestroyFn: function d(a){n.isDestroyed=!0,i.off("value",k),h=null,m(a||"destroyed")}inst: clisteners: Array[0]promise: Object__proto__: Object$id: "3"$priority: null$value: null__proto__: Object

所以这个对象不包含 $stateParams.trialId 要求的 Trial 对象中的所有项目...

如何获取完整的对象并在视图 2 中显示选定的试用信息?

【问题讨论】:

    标签: angularjs firebase ionic-framework


    【解决方案1】:

    发现问题:

    在视图 2 /trials 中,我指的是 {{trialId}},而我应该指的是 {{trial.$id}}。

    改变这个解决了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多