javascript
EmberJS路由详解
配置路由器,ember中是根據(jù)路徑尋找與路由名相對應的模板和控制器的,比如當訪問http://localhost:80/這個網(wǎng)址的時候,ember框架會自動尋找與路由名post相對應的PostTemplate模板和PostRoute路由以及PostController控制器,其中路由和控制器可以不定義,框架會自動生成,但如果你想要在加載模板的時候做一些事情,比如給模板填充數(shù)據(jù)等,就可以在路由里面通過model或setupController兩個鉤子方法,這兩個方法會自動運行,當用戶在模板里觸發(fā)某個行為的時候,就會在模板所對應的控制器里面找相應的行為方法,所以說控制器可以用來監(jiān)控模板視圖中用戶操作的動作,如果控制器是用來監(jiān)控動作的,就用Ember.ObjectController.extend()來聲明,如果控制器是用來給模板提供數(shù)據(jù)(該數(shù)據(jù)可以在模板中直接遍歷),就用Ember.ArrayController.extend()來聲明。
更正以上說法:如果是在地址欄中直接輸入的URL,是根據(jù)URL尋找模板、路由、控制器,如果是在模板中通過路由名定義的鏈接,則是根據(jù)路由名找相應的模板、路由、控制器
App.Route.map(function(){
this.resource("post",{path:'/'});
this.resource("posts",{path:"/:posts_id"});
this.resource('about',{path:'about'});
})
App.PostRoute = Ember.Route.extend({
model:function(){
return [{id:1,name:'kevin',age:18},{id:2,name:'ivan',age:20}];
}
})
?
App.PostController = Ember.ObjectController.extend({
isEditing: false,
actions: {
edit: function() {
this.set('isEditing', true);
},
doneEditing: function() {
this.set('isEditing', false);
}
}
});
總結
以上是生活随笔為你收集整理的EmberJS路由详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络安全系列之三十五 缓冲区溢出
- 下一篇: 程序员如何缓解“电脑病”