2013-03-04 6 views
2

Попытка выполнить некоторую относительно базовую настройку на стороне клиента с помощью EmberJS с помощью небольшого рельса. У меня есть две вещей до сих пор:EmberJS Uncaught TypeError: Object [object Object] не имеет метода 'create'

  1. форма для отправки книги для продажи (на самом деле не создавая его еще)
  2. поиска страницы книг. (Хотите, чтобы это была домашняя страница).

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

Второе, однако, нет. Ошибка объекта появляется, когда я нажимаю ссылку для просмотра страницы поиска. Вот код, я до сих пор:

<script type="text/x-handlebars"> 
    <div class="nav"> 
    {{#linkTo "index_search"}}Home{{/linkTo}} 
    {{#linkTo sale_records.new}}Post a book for sale{{/linkTo}} 
    </div> 
    <div class="container"> 
    {{outlet}} 
    </div> 
</script> 

Javascript:

// router.js 
(function() { 
    LocalBookFinder.Router.map(function() { 
    this.resource("sale_records", { path: "/sale_records" }, function() { 
     this.route('new'); 
    }); 
    this.route("index_search", { path: "/search" }); 
    }); 

    LocalBookFinder.NewSalesRecordRoute = Ember.Route.extend({ 
    model: function() { 
     return new LocalBookFinder.SaleRecord(); 
    }, 
    setupController: function(controller, model) { 

    } 
    }); 

    LocalBookFinder.IndexSearchRoute = Ember.Route.extend({ 
    setupController: function(controller, model) { 

    } 
    }); 
}).call(this); 

// controllers/search/index_search_controller.js 
(function() { 
    LocalBookFinder.IndexSearchController = Ember.ObjectController.extend({ 

    }); 
}).call(this); 


// views/search/index_search_view.js 

(function() { 
    LocalBookFinder.IndexSearchView = Ember.View.create({ 
    templateName: "search/index" 
    }); 
}).call(this); 

Ссылка сама по себе делает хорошо. Но как только я нажимаю на него, я получаю сообщение об ошибке, и ничего не отображается. Есть идеи?

+0

Я буду делать ставки, это проблемы с областью. Так много ссылок на эту функцию в разных областях функций. – epascarello

+0

Имейте в виду, что это отдельные файлы. это в этих случаях вызывает функцию off window. Я считаю, что в большинстве случаев coffeescript инкапсулирует скомпилированный файл. Можно просто использовать() вместо .call (this) – agmcleod

ответ

3

При создании индекса IndexSearchView произошла ошибка. Это должен быть Ember.View.extend, а не Ember.View.create.

+0

Интересно. Новый инструмент NewSearchView также создал и отлично работал. Переключил оба, чтобы расширить, и он работает. – agmcleod

Смежные вопросы