Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Backbone.js+;Require.js和ViewsFactory_Javascript_Backbone.js_Requirejs - Fatal编程技术网

Javascript Backbone.js+;Require.js和ViewsFactory

Javascript Backbone.js+;Require.js和ViewsFactory,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,假设我们有这样的测试代码: var App = (function () { var api = { Router: null, init: function () { this.content = $("#content"); Backbone.history.start(); return this; } }; var ViewsFactory

假设我们有这样的测试代码:

var App = (function () {

    var api = {
        Router: null,
        init: function () {
            this.content = $("#content");
            Backbone.history.start();
            return this;
        }
    };

    var ViewsFactory = {


        view1: function () {
            var model1 = new model1();
            return new api.Views.View1({
                model: model1
            });
        },

        view2: function () {
            var model2 = new model2();
            return new api.Views.View2({
                model: model2
            });
        },

        view3: function () {
            var model3 = new model3();
            return new api.Views.View3({
                model: model3
            });
        },


    };

    var Router = Backbone.Router.extend({
        routes: {
            "": "view1",
            "2": "view2",
            "3": "view3",
        },

        view1: function () {
            var view1 = ViewsFactory.view1();
            $(".content").html(view1.render().el);
        },  

        view2: function () {
            var view2 = ViewsFactory.view2();
            $(".content").html(view2.render().el);
        },

        view3: function () {
            var view3 = ViewsFactory.view3();
            $(".content").html(view3.render().el);
        },

    });

    api.Router = new Router();

    return api;
})();
 var $ = require('jquery'),
     Backbone    = require('backbone');
我想使用Require.js。请不要把重点放在名字上,而要放在想法上

  • 如果我理解正确,我必须在require方法中包含每个视图(View1、View2、View3)和每个模型(Model1、Model2、Model3)。但是在这种情况下使用Require.js而不是传统的
    标记的目的是什么
  • 在主干项目中使用ViewsFactory是一种很好的做法

  • 为什么不建一个景观工厂呢。对你来说,我不确定它是否真的有用


    requirejs将帮助构建可重用的模块

    路由器中的最佳选项是使用如下变量:

    var App = (function () {
    
        var api = {
            Router: null,
            init: function () {
                this.content = $("#content");
                Backbone.history.start();
                return this;
            }
        };
    
        var ViewsFactory = {
    
    
            view1: function () {
                var model1 = new model1();
                return new api.Views.View1({
                    model: model1
                });
            },
    
            view2: function () {
                var model2 = new model2();
                return new api.Views.View2({
                    model: model2
                });
            },
    
            view3: function () {
                var model3 = new model3();
                return new api.Views.View3({
                    model: model3
                });
            },
    
    
        };
    
        var Router = Backbone.Router.extend({
            routes: {
                "": "view1",
                "2": "view2",
                "3": "view3",
            },
    
            view1: function () {
                var view1 = ViewsFactory.view1();
                $(".content").html(view1.render().el);
            },  
    
            view2: function () {
                var view2 = ViewsFactory.view2();
                $(".content").html(view2.render().el);
            },
    
            view3: function () {
                var view3 = ViewsFactory.view3();
                $(".content").html(view3.render().el);
            },
    
        });
    
        api.Router = new Router();
    
        return api;
    })();
    
     var $ = require('jquery'),
         Backbone    = require('backbone');