gpt4 book ai didi

javascript - Backbone 未加载集合

转载 作者:行者123 更新时间:2023-12-03 04:56:43 24 4
gpt4 key购买 nike

我开始了一个新的 BackboneJS 项目并实现了一些简单的代码。我想,它没有调用正确的函数,我没有看到任何错误,也没有看到预期的 console.log 调用。

import _ from 'underscore';
import {Events} from 'backbone';
import Observables from './Models/Observables';
import ObservablesView from './Views/ObservablesView';

(function () {
let setGlobals = function () {
window.App = {};
App.events = _.clone(Events);
};

let init = function () {
setGlobals();

// Get the collection from localStorage.
let observables = new Observables();
new ObservablesView({el: "#observables", collection: observables});

Backbone.history.start({pushState: true});
};

window.addEventListener('load', init);
})();

这是我的路由器:

import {Backbone} from 'backbone';
import {Router} from 'backbone';

const FedRouter = Router.extend({
routes: {
'': 'index'
},

index: function () {
App.events.trigger('observables');
}
});
export default FedRouter;

这是我的观点:

import {View} from 'backbone';
import FedRouter from "../FedRouter";

/**
* ObservablesView is the list of items we want to keep track of.
*/
const ObservablesView = View.extend({
router: null,

/**
* Init a new view object.
* @constructor
*/
initialize: function () {
this.router = new FedRouter();
App.events.on('observables', this.loadObservables, this);
},

loadObservables: function () {
console.log("loadObservables");
this.collection.fetch({
success: (collection) => console.log(collection),
error: (collection, response) => console.log(response)
});
}

});

export default ObservablesView;

我的收藏:

import {Backbone} from 'backbone';
import {Collection} from 'backbone';
import Observable from './Observable';
import Store from 'backbone.localstorage';

const Observables = Collection.extend({
model: Observable,
localStorage: new Store('fed-observables')
});

export default Observables;

最后是我的模型:

import {Model} from 'backbone';

const Observable = Model.extend({
});
export default Observable;

那么为什么我没有看到“loadObservables”消息被记录。我哪里设置不对?

最佳答案

您的路由不正确,其他一切都很好,这是一个有效的 JSFiddle

Backbone.history.start({pushState: true, root: "_display/"});

由于 JSFiddle 上的特定 URL 结构,这是我必须做出的唯一更改。我建议您调试代码并单步执行此 start 函数,您可能最终会进入 loadUrl函数,您可以在其中看到正在评估的片段。

关于javascript - Backbone 未加载集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42402209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com