Las vistas de networking troncal no pueden extenderse usando requirejs

Estoy familiarizado con la construcción de aplicaciones de networking troncal, pero estoy tratando de convertirla para usar requirejs, el problema al que me enfrento es cuando trato de extender la vista principal, no está undefined

al intentar ampliar base-view.js a properties-view.js

  define(['backbone','underscore','jquery','views/node/base-view'], function(Backbone, _, $, NodeBaseView){ PropertiesView = NodeBaseView.extend({ }); } }); 

Hacer una instancia de una vista secundaria dentro de la vista base principal

  define(['backbone','underscore','jquery','views/node/properites-view'], function(Backbone, _, $, PropertiesView){ NodeBaseView = Backbone.View.extend({ .. new PropertiesView({}); .. }); }); 

Aquí, NodeBaseView undefined está undefined cuando se intenta extenderlo para PropertiesView. ¿Alguna ayuda?

Nota: Estoy usando versiones de AMD de backbone y guión bajo desde aquí https://github.com/amdjs

El problema aquí parece ser una dependencia circular. La vista base requiere vista de properties, y viceversa. Esto resulta en que uno de ellos no está definido.

Supongamos que esta definición se encuentra en 'views / main'

 define(['backbone', 'views/node/base'], function(Backbone, BaseView){ var MainView = BaseView.extend({ }); return MainView; } ); 

Luego, como su hijo ve:

 define(['backbone', 'views/node/base'], function(Backbone, BaseView) { var PropertiesView = BaseView.extend({ }); return PropertiesView; } ); 

Luego, en otro lugar en un universo muy lejano:

 myView = new MainView(); 

Usando el ejemplo del manual:

 define(['backbone', 'views/node/base'], function(Backbone, BaseView){ var MainView = BaseView.extend({ }); return MainView; } ); 

Entonces

 define(['backbone'], function (Backbone) { var BaseView; require(['views/node/base'], function(b){ BaseView = b; }); var PropertiesView = BaseView.extend({ }); return PropertiesView; }); 

Puede requerir PropertiesView dinámicamente para que BaseView no dependa de ello.

 define(['backbone','underscore','jquery','views/node/base-view'], function(Backbone, _, $, NodeBaseView){ PropertiesView = NodeBaseView.extend({ }); } return PropertiesView; }); 

Aquí necesita PropertiesView

 define(['backbone','underscore','jquery'], function(Backbone, _, $, PropertiesView){ NodeBaseView = Backbone.View.extend({ .. var PropertiesView = require('views/node/properites-view'); .. new PropertiesView({}); .. }); }); 

Ejemplo:

 define(['views/node/base-view', 'views/node/properites-view'], function(NodeBaseView, PropertiesView){ return { base: new NodeBaseView() } });