Структура папок CanJS

При создании простых проектов мы напрямую указываем модели и контроллеры в одном файле, а затем пишем. Мой app.js выглядит так:

var Library = can.Model({});   
var Control = can.Control({.....});    
var control = new Control('#main');

и один HTML-файл для этого

Для сложных приложений у меня будут разные папки для контроллеров, моделей и видов. Мой первый вопрос

1 Как будет происходить вызов, когда я помещаю контроллеры в разные папки, а модули в разные папки. Может кто-нибудь помочь мне с шаблоном базового файла, который будет вызывать все контроллеры.

1.Если у меня есть простой html-файл для конкретного контроллера, вместо ejs он будет работать?

Я знаю, что это может звучать глупо, но я в замешательстве.

С Уважением,

3 ответа

Посмотрите на пример CanJS + RequireJS TodoMVC. Это должно продемонстрировать все, что вам нужно для начала работы с RequireJS, используя версию модуля CanJS для AMD.

И, конечно, вы можете создать экземпляр своего элемента управления в HTML-файле, не используя представления EJS (или Усы).

Вы можете использовать такой инструмент, как require.js, ваш код будет выглядеть примерно так:

define(['control' ], function(Control){ 
    var control = new Control('#id');       
});

Или используйте пространства имен:

// user_control.js
APP.controllers = APP.controllers || {};
APP.controllers.UserControl = can.Control({...

// other file
var control = APP.controllers.UserControl('#id');

Для создания html вместо ejs мы можем использовать

this.view({
            url: 'views/demos/accordion.html'
        });

Может быть полезным для кого-то еще.

Другие вопросы по тегам