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

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

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

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

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

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

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

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

С уважением,


person Shraddha Shravagi    schedule 13.03.2013    source источник


Ответы (3)


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

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

person Daff    schedule 13.03.2013

Вы можете использовать такой инструмент, как 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');
person Sebastian    schedule 29.04.2013

Чтобы создать экземпляр html вместо ejs, мы можем использовать

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

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

person Shraddha Shravagi    schedule 14.03.2013