2

我想调用 API URL 来获取数据,并将其传递给视图,但在使用 fetch 属性时遇到错误:

Uncaught TypeError: Cannot read property 'localStorage' of undefined  
    at G.d.Backbone.sync (backbone.localStorage-min.js:8)  
    at G.d.fetch (backbone-min.js:23)  
    at G.d.initialize (backbone:120)  
    at G.d.g.Collection (backbone-min.js:18)  
    at new G.d (backbone-min.js:38)  
    at backbone:137

编码:

var app = {};
app.postCollection = Backbone.Collection.extend({

  url: 'https://jsonplaceholder.typicode.com/comments',
  initialize: function(){
    this.fetch({
      success: this.fetchSuccess,
      error: this.fetchError
    });
  },

  fetchSuccess: function (collection, response) {
    console.log('Collection fetch success', response.data);
    /*console.log('Collection models: ', this.models);*/
  },

  fetchError: function (collection, response) {
    throw new Error(" fetch error");
  }

});

try {
  app.postcollection = new app.postCollection();
}
catch (e) {
  console.log(e.message);
}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    		  <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js" type="text/javascript"></script>
    		  <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
    		  <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone-localstorage.js/1.0/backbone.localStorage-min.js" type="text/javascript"></script>

4

1 回答 1

2

您使用的是旧版本的 localStorage。例如更新到新版本https://cdnjs.cloudflare.com/ajax/libs/backbone-localstorage.js/1.1.16/backbone.localStorage.js

此外,您需要localStorage在集合上指定属性,例如localStorage: new Backbone.LocalStorage("SomeCollection"),

工作 JSFiddle

于 2017-01-18T10:46:19.933 回答