使用require.js在Backbone.js视图中包含自定义代码库

时间:2013-08-24 18:29:49

标签: backbone.js requirejs

我想在骨干视图中包含一个有用的函数库。我正在使用require.js。我的库看起来像:

define(function (require) {

    "use strict";

    console.log('in the useful');

   var $ = require('jquery');

    function myFunction()
        {
        alert("Hello World!");
        }

});

并且视图是这样的:

 define(function (require) {

    "use strict";

    var $                   = require('jquery'),
       _                   = require('underscore'),
       UsefulFuncs         = require('app/utils/useful_func'),
       tpl                 = require('text!tpl/Register.html'),

       template = _.template(tpl),
       errors = [],

       Backbone            = require('backbone');

   return Backbone.View.extend({

       initialize: function() {

           this.render();

       },
       render: function () {
           this.$el.html(template());
           return this;
       },
       events: {
           'submit .register-form' : 'onSubmit',
       },
       onSubmit: function(e) {

        //UsefulFuncs.myFunction();
           myFunction();

       },


   });
});

但是当我点击“提交”时,我得到“myFunction未定义”。当我尝试UsefulFuncs.myFunction();

时也一样

那么如何在骨干视图中访问我的函数库呢?

1 个答案:

答案 0 :(得分:1)

您必须从实用程序模块返回包含该函数作为属性的对象:

define(["jquery"], function($) {
    "use strict";
     var UsefulFuncs = {};
     console.log('in the useful');
     UsefulFuncs.myFunction = function() {
        alert("Hello World!");
     }
     return UsefulFuncs;
});

然后,您可以添加更多函数作为UsefulFuncs的对象属性。