【发布时间】: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