安格拉向智囊团开火



大家好!

对不起,我的英语不好,请问我,我会尽力解释更多。

我正在学习关于http://thinkster.io我在第4课中注意到,它使用了angularfire的旧版本(我想小于2(,后者的语法也发生了变化。我已经尝试对v2的代码进行更改(例如,我添加了$asArray((元素来返回$firebase,$add和$remove开始工作。但是我的方法"find"没有,$keyAt返回null。我的假货在哪里?

post.js:

'use strict';
app.factory('Post', 
    function ($firebase, FIREBASE_URL) {
        var ref = new Firebase('https://torid-fire-6813.firebaseio.com/posts');
        var posts = $firebase(ref).$asArray();
        var Post = {
            all: posts,
            create: function (post) {
                return posts.$add(post);
            },
            find: function (postId) {
                return posts.$keyAt(postId);
            },
            delete: function (postId) {
                return posts.$remove(postId);
            }
        };
        return Post;
    }
);

和postview.js,其中使用了方法"find":

'use strict';
app.controller('PostViewCtrl', function($scope, $routeParams, Post){
    $scope.post = Post.find($routeParams.postId);
});

我也有同样的问题。

以及在post.js:中使用$getRecord

find: function (postId) {
    return posts.$getRecord(postId);

并在posts.html 中使用{{post.$id}}

<a href="#/posts/{{ post.$id }}">comments</a>

让它工作得很好。尽管如此,我还是一个傻瓜,真的不明白为什么这真的有效。也许有人可以提供一些信息?此外,我找不到$getRecord文档。它不应该和$keyAt一起工作吗?

我在做http://thinkster.io辅导的我使用的是最新的angularfire 0.8.0和AngularJS v1.2.16。(由约曼安装(

$child在angularfire中消失0.8.0https://www.firebase.com/blog/2014-07-30-introducing-angularfire-08.html

在find方法中,应该使用$getRecord((;

    find: function(postId){
        return posts.$getRecord( postId );
    },

此外,在views/posts.html中,我正在传递帖子&id,而不是postId。(虽然不确定这是正确的方法,但它有效(

<a href="#/posts/{{ post.$id }}">comments</a>

postId的行为似乎类似于$index。如果您在视图中控制台.log(postId(或{{postId}},您会注意到这一点。

遇到这些问题让我怀疑工厂是否有必要使用这个新的API。这似乎可以在控制器中完成。

我已经请智囊团的人更新他们的教程。我希望他们很快就会这么做。

相关内容

  • 没有找到相关文章

最新更新