state不会在重载Ui-Router和angularfire上显示数据

时间:2017-02-15 04:35:57

标签: angular-ui-router angularfire

我有一个SPA'博客'使用ui-router并使用firebase作为Angular Fire的后端。博客页面调用数组没有问题,并正确加载。当我选择一个单独的帖子时,它会从$ fireParams({id:post。$ id})加载来自firebase通过帖子提取的数组。

然而,当我刷新该页面时,唯一的帖子就会丢失。

代码如下:Router =

            .state(homeState = {
            name: 'root.home.post',
            url: '/{{postId}}',
            views: {
                'main@': {
                    templateUrl: 'views/post/post.html'
                }
            }
        })

post.js =

        var id = $stateParams.postId; // console.logs correctly even after refresh
        var ref = Posts; //console.logts $resolved: false after refresh though data from main page still in the array
        var post = ref.$getRecord(id); //console.logs as null after refresh
        $scope.post = post;

不确定这是否足够继续,但我现在已经挣扎了几个小时并想睡觉。欢呼声。

1 个答案:

答案 0 :(得分:0)

解决了我自己的问题(两次折叠)

更新了post.js,以便在页面的其余部分被绘制后加载时加载。$ loaded的更新:

            var id = $stateParams.postId;
        console.log(id);
        var ref = Posts.$loaded().then(function(ref){
          var post = ref.$getRecord(id);
            $scope.post = post;
        });

我还更新了路径以删除参数周围的{}:

            .state(postState = {
            name: 'root.post',
            url: '/post/{postId}',
            views: {
                'main@': {
                    templateUrl: 'views/post/post.html'
                }
            },

        })