我怎么能得到使用Backbone.js推文时间轴

How can I get Tweet Timeline with using Backbone.js?

本文关键字:文时间 时间 js 怎么能 Backbone      更新时间:2023-09-26

我是Backbone.js的初学者。我已经完成了一些教程。

  • http://backbonejs.org/docs/todos.html
  • http://coenraets.org/blog/2011/12/backbone-js-wine-cellar-tutorial-part-1-getting-started/

我想自己创建一个非教程应用程序,并尝试创建一个简单的应用程序,使用骨干收集或模型显示tweet时间轴。

这是我的代码。(oauth.js和sha1.js包含在HTML中)
$(function(){
var Tweet = Backbone.Model.extend({
});
var Twitter = Backbone.Collection.extend({
    model: Tweet,
    initialize: function(api){
        this.consumerKey = //consumerKey;
        this.consumerSecret = //consumerSecret;
        this.accessToken = //accessToken;
        this.accessTokenSecret = //accessTokenSecret;
        this.message = {
            method: "GET",
            action: api,
            parameters: {
                oauth_version: "1.0",
                oauth_signature_method: "HMAC-SHA1",
                oauth_consumer_key: this.consumerKey,
                oauth_token: this.accessToken
            }
        };
    },
    getTimeline: function(){
        var accessor = {
            consumerSecret: this.consumerSecret,
            tokenSecret: this.accessTokenSecret
        };
        OAuth.setTimestampAndNonce(this.message);
        OAuth.SignatureMethod.sign(this.message, accessor);
        this.url =  OAuth.addToURL(this.message.action, this.message.parameters);
        var options = {
            success: function(data, res){
                console.log(data);
                console.log(res);
            }
        };
        this.fetch(options);
    },
    sync: function(method, model, options){
        options.timeout = 10000;
        options.dataType = 'jsonp';
        return Backbone.sync(method, model, options);
    }
});
var twitter = new Twitter("https://api.twitter.com/1.1/statuses/home_timeline.json");
twitter.getTimeline();
});

当我刷新HTML页面时,Chrome开发者工具的控制台中显示401授权信息。我可以得到没有Backbone.js的时间轴。

请教我如何修理它。

谢谢你的好意。

如果你不需要Backbone.js就可以让它工作,你可以使用没有Backbone的fetch方法。无论如何,sync方法只有在你做REST的时候才有帮助,比如获取、更新、创建和删除方法。

在你的例子中只有一个取回,对吗?重写你的fetch函数,做你在插入backbone之前做的任何事。听你自己的成功,然后做Collection.reset。

var collection = Backbone.Collection.extend({
   _onLoaded : function(data) {
       this.reset(data, {parse:true});
   },
   fetch : function() {
       $.get("").success(_.bind(this._onLoaded, this));
   }
});