我正在开发一个使用backbone.js的javascript应用程序,也就是说,为了便于开发,我以这种方式组织我的文件
app
|
+ views
| L movieRow.js
| L movieDetail.js
|
+ models
| L movie.js
| L tvshow.js
|
+ collections
| L movies.js
| L tvshows.js
|
+ templates
| L movieList.tpl
| L movieDetail.tpl
| L applicationUI.tpl
|
L application.js
现在,有很多javascript文件要提供给用户,我看到一些关于labjs或require.js的消息,于是决定用它来测试一下。但我不知道如何将我所有的主干模型或视图重写到这些require.js模块中。
在正确的方向上提供任何帮助都会很好。
发布于 2011-09-09 03:32:58
理解require的关键(至少在我的小脑海中)是记住,从函数返回的内容将可用于其他引入(或需要)此模块的模块。因此,在下面的代码中,我需要jquery和backbone (jquery是由“require-jquery”处理的特殊情况)。当这两个函数可用时,它将调用我的函数,该函数将返回我创建的View构造函数。
define([
'jquery'
'libraries/backbone'
], function ($) {
var MovieRow = Backbone.View.extend({
render: function () {
return this;
}
});
return MovieRow;
});
然后你可以在你的页面上写一些类似这样的东西。请注意,jquery是数组中的第一个必填项。这对应于我的函数中的第一个参数。视图是第二个,模型是第三个。然后我可以使用我上面的“定义”代码的返回值,它是构造函数。
require({
baseUrl: '/'
},[
'jquery',
'app/views/movieRow',
'app/models/movie',
'libraries/backbone'
],
function ($, MovieRowView, Movie) {
var view = new MovieRowView({model : new Movie());
$('body').append(view.render().el);
});
希望这能对你有所帮助。我们一直很喜欢Backbone,并且需要:)
https://stackoverflow.com/questions/7353151
复制相似问题