gpt4 book ai didi

backbone.js - 不同文件中的模型/ View

转载 作者:行者123 更新时间:2023-12-01 23:25:07 24 4
gpt4 key购买 nike

我只是尝试将 backbone.js 应用到我的带有待办事项示例的项目中。在我的 app.js 文件中,我尝试实例化我的 View /模型/集合等,但我尝试收到错误消息:应用程序未在 TodoList 中定义。

HTML:

<head>

<script type="text/javascript" src="js/json2.js"></script>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/underscore-min.js"></script>
<script type="text/javascript" src="js/backbone-min.js"></script>
<script type="text/javascript" src="js/backbone-localstorage.js"></script>

<script type="text/javascript" src="js/models/models.js"></script>
<script type="text/javascript" src="js/collections/collections.js"></script>
<script type="text/javascript" src="js/views/views.js"></script>
<script type="text/javascript" src="js/views/app.js"></script>

<script type="text/javascript" src="js/app.js"></script>

app.js(我的应用程序的根目录):

    var app = {
models:{},
collections:{},
views:{}
};

jQuery(function($) {

var Todos = new app.collections.TodoList;
var test = new Todo;
var test2 = new TodoView;
var appView = new AppView({});

});

collections.js:

app.collections.TodoList = Backbone.Collection.extend({

model: Todo,

localStorage: new Store("todos"),

done: function() {
return this.filter(function(todo) {
return todo.get('done');
});
},

remaining: function() {
return this.without.apply(this, this.done());
},
nextOrder: function() {
if (!this.length) return 1;
return this.last().get('order') + 1;
},

comparator: function(todo) {
return todo.get('order');
}

});

最佳答案

您正在尝试在命名空间准备就绪之前使用它。两种选择。首先,首先拥有“app.js”,但取出初始化代码并将其放入绝对最后加载的“bootstrap.js”中。第二种选择,也是我通常不喜欢的一种,在文件中定义您需要的 namespace (如果它们尚不存在)。例如

var app = app || {};
app.collection = app.collection || {};

基本上,代码是一个一个加载进去的。当你说 namespace.subspace 时,代码期望命名空间已经被定义为某种东西——在我见过的大多数情况下通常是一个对象。如果没有那个基础部分,代码将只是扁平化——它会假设你正在尝试做相当于从屋顶开始 build 城堡的事情。

关于backbone.js - 不同文件中的模型/ View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482844/

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