【问题标题】:Error: Firebase.child failed: First argument was an invalid path: "undefined"错误:Firebase.child 失败:第一个参数是无效路径:“未定义”
【发布时间】: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


【解决方案1】:

通过在 postview.ctrl.js 中将routeParams 更改为 stateParams,我得到了单独的帖子页面,以使用来自 Firebase 的正确数据填充模板,因为这是 ui-router 需要运行的功能。有关 stateParams 的更多信息可以在这里找到https://github.com/angular-ui/ui-router/wiki/URL-Routing#stateparams-service

工作的 postview.ctrl.js

app.controller('PostViewCtrl', function ($scope, $stateParams, Post, Auth) {
    $scope.post = Post.get($stateParams.postId);
    $scope.comments = Post.comments($stateParams.postId);

    $scope.user = Auth.user;
    $scope.signedIn = Auth.signedIn;

});

还有正在工作的 Plunker:

http://plnkr.co/edit/mnBYG1A1MEEv6gINRBbb?p=preview

【讨论】:

    猜你喜欢
    • 2017-09-12
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 2020-12-21
    相关资源
    最近更新 更多