改變URL可以使得模板在屏幕上展示的內(nèi)容發(fā)生變化
在ember.js中,模板從controller中獲取信息
兩個(gè)內(nèi)建的controller(Ember.ObjectController和Ember.ArrayController)使得controller展示模板屬性變得容易。
為了告訴controller去展示哪一個(gè)model,需要在route中得setupController方法中設(shè)置model屬性

setupController方法將route handler關(guān)聯(lián)的controller作為其第一個(gè)參數(shù),在次情況下,PostRoute的setupController方法接收到的是應(yīng)用程序的實(shí)例App.PostController。
指定一個(gè)controller而不是使用Ember默認(rèn)生成的,可以設(shè)置route的controllerName屬性。

setupController方法的第二個(gè)參數(shù)是route操作的model。
默認(rèn)的setupController方法將route handler的model設(shè)置為關(guān)聯(lián)controller的model屬性。
如果你要配置一個(gè)controller而不是route handler關(guān)聯(lián)的controller,使用controllerFor方法:

RENDERING A TEMPLATE
路由的一個(gè)重要的工作就是將正確的模板渲染到屏幕上,默認(rèn)情況下,route handler會(huì)將模板渲染到最近的父模板中。

如果你想要渲染一個(gè)并非route handler關(guān)聯(lián)的模板,那么需要實(shí)現(xiàn)renderTemplate方法:

如果你想要使用一個(gè)不同的controller,而不是route handler默認(rèn)的controller,將controller的名字傳遞給controller選項(xiàng)。

Ember允許你給outlet取名字,下面的代碼允許你為兩個(gè)outlet指定不同的名字:

因此,如果你要將posts渲染到sidebar outlet中,應(yīng)該使用下面的代碼:

上面提到的所有選項(xiàng)可以放在一起使用:

如果你要將兩個(gè)不同的模板渲染到兩個(gè)不同的模板中,代碼應(yīng)該是下面這樣:
