2013-02-11 2 views
0
TodoMVC.module "TodoList", (TodoList, App, Backbone, Marionette, $, _) -> 

    # TodoList Router 
    # --------------- 
    # 
    # Handle routes to show the active vs complete todo items 
    TodoList.Router = Marionette.AppRouter.extend 
    appRoutes: "*filter": "filterItems" 

    # TodoList Controller (Mediator) 
    # ------------------------------ 
    # 
    # Control the workflow and logic that exists at the application 
    # level, above the implementation detail of views and models 
    TodoList.Controller = -> 
    @todoList = new App.Todos.TodoList() 

    _.extend TodoList.Controller::, 

    # Start the app by showing the appropriate views 
    # and fetching the list of todo items, if there are any 
    start: -> 
     @showHeader @todoList 
     @showFooter @todoList 
     @showTodoList @todoList 
     App.bindTo @todoList, "reset add remove", @toggleFooter, this 
     @todoList.fetch() 

    showHeader: (todoList) -> 
     header = new App.Layout.Header(collection: todoList) 
     App.header.show header 

    showFooter: (todoList) -> 
     footer = new App.Layout.Footer(collection: todoList) 
     App.footer.show footer 

    showTodoList: (todoList) -> 
     App.main.show new TodoList.Views.ListView(collection: todoList) 

    toggleFooter: -> 
     App.footer.$el.toggle @todoList.length 

    # Set the filter to show complete or all items 
    filterItems: (filter) -> 
     App.vent.trigger "todoList:filter", filter.trim() or "" 


    # TodoList Initializer 
    # -------------------- 
    # 
    # Get the TodoList up and running by initializing the mediator 
    # when the the application is started, pulling in all of the 
    # existing Todo items and displaying them. 
    TodoList.addInitializer -> 
    controller = new TodoList.Controller() 
    new TodoList.Router(controller: controller) 
    controller.start() 

неперехваченного NoMethodError: Метод «filterItems» не был найден на контроллеремарионетка todomvc простираться ошибке

Я взял TodoMVC example for Marionette, и превратила его в CoffeeScript с помощью js2coffee и я использую requirejs. Я не уверен, почему это происходит, поскольку я не добавил никакого реального кода. Если есть какая-либо дополнительная информация, которую я могу включить, сообщите мне.

ответ

1

У меня также была эта ошибка.

Проблема заключается в следующем коде:

TodoList.Controller = -> 
    @todoList = new App.Todos.TodoList() 

Это добавит return перед второй линии сразу преобразуется в JS. Для меня добавление true в качестве следующей линии решило проблему.

TodoList.Controller = -> 
    @todoList = new App.Todos.TodoList() 
    true 
Смежные вопросы