主干视图无法使用requirejs进行扩展

Gok*_*Kav 8 javascript amd requirejs backbone.js

我熟悉构建主干应用程序,但我试图将其转换为使用requirejs,我面临的问题是当我尝试扩展父视图时,它是 undefined

尝试将base-view.js扩展到properties-view.js时

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

        });
     }
});
Run Code Online (Sandbox Code Playgroud)

在父基本视图中实例化子视图

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

});
Run Code Online (Sandbox Code Playgroud)

这里NodeBaseView是undefined在尝试为PropertiesView扩展它时.任何帮助?

注意:我在这里使用AMD版本的骨干和下划线https://github.com/amdjs

gre*_*eim 3

这里的问题似乎是循环依赖。基础视图需要属性视图,反之亦然。这会导致其中之一未定义。

  • 好吧,需要明确的是,除非我完全误解了这个问题,否则您遇到的问题与 Backbone 无关。这与您如何使用 require 有关。AMD 中不允许循环依赖。(如果我错了,有人纠正我。)即使您没有使用 require,父视图依赖于子视图对我来说似乎很奇怪。并不是试图告诉您什么最适合您的代码,只是说我认为依赖库有充分的理由不允许它。如果是我,我会通过简单地使用三个视图来解决这个问题。 (2认同)