首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Backbone.js & require.js:如何将模型、视图和集合转换为require.js模块?

Backbone.js & require.js:如何将模型、视图和集合转换为require.js模块?
EN

Stack Overflow用户
提问于 2011-09-09 03:04:24
回答 1查看 5.2K关注 0票数 17

我正在开发一个使用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模块中。

在正确的方向上提供任何帮助都会很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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,并且需要:)

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7353151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档