0

Require.js、Backbone、Marionette を使用するプロジェクトに取り組んでdefine/functionいますが、ファイルの先頭にある呼び出しが少しばかげています。define「インクルード」を一番上のブロックから移動し、関連する場所に移動する方法を見つけたいと思いextendます。

したがって、私の構造はおおよそ次のようになります。

define(['underscore','jquery','handlebars','someTemplate','someModel',etc...], function(_,$,Handlebars,template,model,etc...){
  var someView = Backbone.Marionette.ItemView.extend({
    // code here
  });
  return someView;
});

そのため、ファイルにビューを追加すると、そのdefineリストは非常に長くなります。私は次のようなことを試みました:

var someView = define(['someTemplate','someModel'], function(template, model){
  return Backbone.Marionette.ItemView.extend({
    // code here
  });
]);

しかし、someView後で呼び出すと未定義です。私はこれを間違っていますか、それとも不可能ですか?

4

2 に答える 2

2

require.js 構成ファイルの依存関係シムを使用して、「共通」または必要なモジュールを 1 つの名前空間に集約できます。

shim: {
       marionette: {
            deps: ["backbone", "json2", "bootstrap", "backboneRpc"],
            exports: 'Marionette'
        },

        flot_pie: {
            deps: ['jquery', 'charting', 'flot_resize'],
            exports: '$.plot'
        },
  }

これで、次のように必要なものすべてを呼び出すことができます。

define([
    'marionette',
    'flot_pie'
],

function(Marionette, graph) {
于 2013-05-07T22:08:26.280 に答える