我正在使用 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 的讨论,并决定用它来测试。但我不知道如何将我所有的主干模型或 View 重写到这些 require.js 模块中。
在正确方向上的任何帮助都会很好。
最佳答案
理解 require 的关键(至少在我的小脑袋里)是记住你从函数返回的内容将对引入(或需要)这个模块的其他模块可用。所以在下面的代码中,我需要 jquery 和 backbone(jquery 是由“require-jquery”处理的特例)。当这 2 个可用时,它将调用我的函数,该函数将返回我创建的 View 构造函数。
define([
'jquery'
'libraries/backbone'
], function ($) {
var MovieRow = Backbone.View.extend({
render: function () {
return this;
}
});
return MovieRow;
});
然后你可能会在你的页面上写这样的东西。请注意,jquery 是数组中的第一个必需项。这对应于我函数中的第一个参数。 View 是第二个,模型是第三个。然后我可以使用上面“定义”代码的返回值,它是构造函数。
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 和 Require :)
关于javascript - Backbone.js & require.js : how do I transform my models, View 和集合到 require.js 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353151/