我真的希望從emberjs團隊會有人閱讀。加載時出錯路線:類型錯誤:未定義是不是一個函數
我在幾種語言一個非常有經驗的程序員。
& AFA燼而言,它不是學習曲線也沒有,我覺得缺乏知識&教程, 而是我認爲它的不斷變化中消耗了大量的時間框架的來源&開發環境,努力和能源, 試圖找出各種SO問題和谷歌引用不同/較舊版本的框架時出了什麼問題。
我覺得需要一些什麼樣的什麼,以及如何在這裏配置你的開發環境是必要工作的結構圖的。
有很多答案是不一定正確的方向指向的,它很難形容,但我種得到的感覺文檔相對滯後,而框架是跑步前進。
我經歷了所有José Mota的優秀教程,並且在構建實際書籤應用程序的最後階段,我遇到了很多問題,以至於學習emberjs不是主要問題,而是圍繞它的基礎設施消耗了大部分時間。
它開始與Ruby版本和管理這些在Ubuntu 12.04,紅寶石的ember-data依賴(編譯只能用紅寶石1.9),以localstorage_adapter.js以及如何使用它燼工作... 的例子GitHub的頁面上給出了後來不起作用。
配置:
ubuntu的12.04.4 餘燼1.4.1 + pre.af87bd20 的jquery-1.9.1 車把-V1.3.0 餘燼數據1.0.0-beta.7.f87cba88 紅寶石1.9.2p290
繼José Mota's great tutsplus course 因此,這裏是我的問題:
Error while loading route: TypeError: undefined is not a function
at App.BookmarksNewRoute.Ember.Route.extend.model (http://localhost:8000/js/app/routes/bookmarks_new.js:3:23)
at superWrapper [as model] (http://localhost:8000/js/vendor/ember.js:1239:16)
應用程序代碼(我會盡量明確):
條路線
文件名:bookmarks_new.js
App.BookmarksNewRoute = Ember.Route.extend({
model: function() {
return App.Bookmark.createRecord();
}
})
模式
文件名:bookmark.js
App.Bookmark = DS.Model.extend({
title: DS.attr("string"),
url: DS.attr("string")
})
文件名:router.js
App.Router.map(function() {
this.resource("bookmarks", function(){
this.route("new");
});
});
文件名:存儲。js
(1)
App.Store = DS.Store.extend({
revision: 14,
adapter: DS.LSAdapter
});
(2)
App.Store = DS.Store.extend();
App.ApplicationAdapter = DS.LSAdapter;
(3)
App.Store = DS.Store.extend();
App.ApplicationAdapter = DS.LSAdapter.extend({
namespace: 'bookmarks'
});
(4)
App.ApplicationSerializer = DS.LSSerializer.extend();
App.ApplicationAdapter = DS.LSAdapter.extend({
namespace: 'bookmarks'
});
number 1 & 4工作,但哪一個是正確的? 數字2,3在SO或谷歌不同的答案中找到,以解決不同的人的問題。
控制器
文件名:bookmarks.js
App.BookmarksController = Ember.ArrayController.extend();
文件名:bookmarks_new.js
App.BookmarksNewController = Ember.ObjectController.extend({
save: function() {
this.get("model.transaction").commit();
// this.get("model").get("transaction").commit(); // similiar
this.get("router").transitionTo("bookmars");
}
});
的index.html
**這裏是appera S(也被找出另一個人的問題),在其中,腳本放置在inbdex.html的順序是至關重要的:
<script type="text/javascript" src="js/vendor/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/vendor/handlebars-v1.3.0.js"></script>
<script type="text/javascript" src="js/vendor/ember.js"></script>
<script type="text/javascript" src="js/vendor/ember-states.js"></script>
<script type="text/javascript" src="js/vendor/ember-data.js"></script>
<script type="text/javascript" src="js/app/app.js"></script>
<script type="text/javascript" src="js/app/router.js"></script>
<script type="text/javascript" src="js/vendor/localstorage_adapter.js"></script>
<script type="text/javascript" src="js/app/store.js"></script>
<script type="text/javascript" src="js/app/controllers/bookmarks.js"></script>
<script type="text/javascript" src="js/app/controllers/bookmarks_new.js"></script>
<script type="text/javascript" src="js/app/models/bookmark.js"></script>
<script type="text/javascript" src="js/app/routes/bookmarks_new.js"></script>
終於標記
<script type="text/x-handlebars" data-template-name="bookmarks">
<h2>All my Bookmarks</h2>
<table>
<thead>
<tr>
<th>Title</th>
<th>URL</th>
</tr>
</thead>
<tbody>
{{#each controller}}
<tr>
<td>{{title}}</td>
<td>{{url}}</td>
</tr>
{{else}}
<tr>
<td>U have No bookmarks</td>
</tr>
{{/each}}
</tbody>
</table>
{{#link-to "bookmarks.new"}}Add new bookmark{{/link-to}}
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="bookmarks/new">
<h3>New Bookmark</h3>
<form {{action "save" on="submit"}}>
<p>
{{view Ember.TextField valueBinding="title" placeholder="type in a title"}}
</p>
<p>
{{view Ember.TextField valueBinding="url" placeholder="type in a URL"}}
</p>
<p>
<button>Create Bookmark</button>
</p>
</form>
</script>
OK ,所以點擊'添加新書籤'會產生上述錯誤。
爲什麼?
感謝您的時間... ... embereres
如果您發現任何信息丟失,請讓我知道。
約阿希姆感謝您的回覆...給你的視頻拍攝,但GitHub的代碼是缺少一些文件,所以不能真正遵循你的教程...你有任何建議從哪裏開始?一些簡單的/基本的,如何在一個應用程序應用程序中爲單個頁面創建模型/視圖/控制器...... ???謝謝 – Jadeye
看看我的書(Ember.js in Action)中的免費樣章:http://manning.com/skeie/它貫穿並解釋了每一步 –