2013-03-04 24 views
2

嘗試用EmberJS做一些相對基本的客戶端設置和一個小型Rails應用程序。我至今兩件事情:EmberJS Uncaught TypeError:Object [object Object]沒有方法'創建'

  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

我敢打賭,這是範圍問題。在不同的函數範圍中引用了許多'this'。 – epascarello 2013-03-04 20:50:02

+0

請記住這些是單獨的文件。在這些情況下,此功能將關閉窗口。我相信這是coffeescript在大多數情況下封裝編譯文件的方式。可以簡單地使用()而不是.call(this) – agmcleod 2013-03-04 20:51:15

回答

3

設置IndexSearchView時出現錯誤。它應該是Ember.View.extend,而不是 Ember.View.create。

+0

有趣。 NewSearchView使用創建以及工作正常。切換兩個擴展,它的工作。 – agmcleod 2013-03-05 01:04:38

相關問題