Backbone.js с Rails

В настоящее время я пробую Backbone.js вместе с приложением rails. Моя проблема в том, что я не знаю, как реализовать контроллеры и представления Backbone в моем приложении rails. Я прочитал много руководств, но они всегда используют только один контроллер в backbone.js.

Например, у меня два контроллера на рельсах.

  • Контроллер действий
    • Включает два представления, карту Google и поле поиска. Карта Google вставлена ​​с видом основы, поле поиска находится в HTML и получает свою функциональность через представление основы.
    • Поле поиска должно извлекать данные из моей модели рельсов и отображать маркеры внутри карты.

И другое один -

  • Пользовательский контроллер
    • Здесь просматривается профиль пользователя, и я хочу добавить некоторые функции ajax, такие как обновление значений и другие вещи

В моем application.js я запускаю приложение, используя

var App = {
  Views: {},
  Controllers: {},
  Collections: {},
  init: function() {
      new App.Controllers.Activities();
      new App.Controllers.Users();
      Backbone.history.start();
  }
};

$(function() {
  App.init();
});

Проблема в том, что мне не нужно контроллер действий в моем профиле пользователя и контроллер пользователей в контроллере действий Rails. Как я мог это решить? Стоит ли мне попробовать прочитать текущий URL-адрес в javascript, а затем решить, какой контроллер используется? Или я должен поместить файл JavaScript в application.html.erb, а затем решить здесь, какой контроллер следует использовать?

Или это неправильный способ использования контроллеров backbone.js?

Я что-то не так понимаю с структура backbone.js? Или я неправильно использую контроллеры?

Другой вопрос, как добавить немного функций JavaScript, в частности jQuery, через Backbone.js? Например, я хочу удалить метку внутри поля, когда пользователь щелкает по полю. Или я хочу использовать вкладки и просто переключать видимость некоторых элементов. Должен ли я создавать для каждого элемента, использующего javascript, представление Backbone? Или это перегрузка?

Надеюсь, я ясно выразился и кто-нибудь может помочь, thx!

7
задан 23tux 6 March 2011 в 18:50
поделиться