【发布时间】:2015-01-20 20:04:51
【问题描述】:
在我的 Angular 中按下 View Post 链接 (导航到 posts.postview state) 时出现以下错误, ui-router 和 Firebase 应用:
Error: Firebase.child failed: First argument was an invalid path: "undefined". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"
在应用程序的主页上,我列出了 4 个帖子。这些帖子的数据是从 Firebase 获取的。每个帖子都有一个通过查看帖子链接到帖子页面的链接,如下图所示:
当我单击 查看帖子 链接时,我看到帖子页面已加载,但我会收到上述 Firebase 错误,并且 Firebase 数据不会填充模板(postview.tpl.html) 如下图所示:
我有一个在 Plunker 中运行的应用程序的更新最小版本
http://plnkr.co/edit/bGqFZ2VI7OSrO0myDjkq?p=preview
另外,这里是与获取帖子数据相关的控制器和服务文件:
postview.ctrl.js
app.controller('PostViewCtrl', function ($scope, $routeParams, Post, Auth) {
$scope.post = Post.get($routeParams.postId);
$scope.comments = Post.comments($routeParams.postId);
$scope.user = Auth.user;
$scope.signedIn = Auth.signedIn;
});
post.serv.js
app.factory('Post', function ($firebase, FIREBASE_URL) {
var ref = new Firebase(FIREBASE_URL);
var posts = $firebase(ref.child('posts')).$asArray();
var Post = {
all: posts,
get: function (postId) {
return $firebase(ref.child('posts').child(postId)).$asObject();
}
};
return Post;
});
关于这里出了什么问题的任何想法?
【问题讨论】:
-
对不起,但我不知道在那个 plunker 中该做什么。你能把它减少到最小重现你的问题吗?另外:请在您的问题中包含来自 plunkr 的相关代码。
-
抱歉帖子含糊不清。我已经更新了 Plunker 和帖子以更清楚地说明我的问题。
标签: angularjs firebase angularfire angular-ui-router