木偶控制器最佳实践

Don*_*d J 7 javascript backbone.js marionette

根据v2.4.1 Marionette文档控制器被弃用:

警告:已弃用.不推荐使用Controller对象.您应该在普通的Javascript对象上指定回调,而不是将Controller类与AppRouter一起使用.

我很困惑他们被弃用的最佳做法是什么?这是否意味着AppRouter也被弃用了?如果是这样,目前用于开发大型Marionette应用的模式是什么?

joc*_*nja 7

你可以使用Marionette.Object.它与Controller基本相同.

要在AppRouter中使用普通JavaScript对象,您可以执行以下操作:

    var MyController = Marionette.Object.extend({/*...*/});
    var AnotherController = Marionette.Object.extend({/*...*/});

    var myController = new MyController();
    var anotherController = new AnotherController();

    var plainJsObject = {
      doStuff: myController.doStuff,
      doSomethingDifferent: anotherController.doSomethingDifferent
    };

    var router = Marionette.AppRouter.extend({
      controller: plainJsObject
    });
Run Code Online (Sandbox Code Playgroud)