Emberjs路由
2015-08-04 15:23
627 查看
App.Router.map(function() { this.resource('topCharts', function() { this.route('choose', { path: '/' }); this.route('albums'); this.route('songs'); this.route('artists'); this.route('playlists'); }); }); App.TopChartsChooseRoute = Ember.Route.extend({ beforeModel: function() { var lastFilter = this.controllerFor('application').get('lastFilter'); this.transitionTo('topCharts.' + (lastFilter || 'songs')); } }); // Superclass to be used by all of the filter routes below App.FilterRoute = Ember.Route.extend({ activate: function() { var controller = this.controllerFor('application'); controller.set('lastFilter', this.templateName); } }); App.TopChartsSongsRoute = App.FilterRoute.extend(); App.TopChartsAlbumsRoute = App.FilterRoute.extend(); App.TopChartsArtistsRoute = App.FilterRoute.extend(); App.TopChartsPlaylistsRoute = App.FilterRoute.extend();
model钩子包含了基于承诺暂停过渡的许多应用场景,但是有的时候还是需要
beforeModel和
afterModel这两个钩子来提供帮助。最常见的原因是通过
{{link-to}}或者
{{transitionTo}}(最为URL改变导致的过渡的对比)过渡到一个具有动态URL端,这时将过渡到的路由的模型早早就被指定了(例如
{{#link-to 'article' article}}或者
this.transitionTo('article', article)),这种情况下,
model钩子并不会被调用。当路由正在收集所有路由的模型来执行过渡时,就需要使用
beforeModel和
afterModel钩子来处理所有逻辑。?
相关文章推荐
- JS实现转动随机数抽奖的特效代码
- js中window的属性
- JavaScript实现跨浏览器的添加及删除事件绑定函数实例
- js解码函数 escape,encodeURI,encodeURIComponent比较
- javascript超链接的变换
- js中&& 和 ||
- JavaScript实现LI列表数据绑定的方法
- JSON Compression algorithms
- javascript运动框架---3--匀速运动
- JSP三秒自动跳转到另一页
- JSONKIT isa错误的解决办法
- 用js编写的简单的计算器代码程序
- javascript运动框架---2--缓冲运动
- 从jsTree演示代码中提取的在线文件查看
- 关于SSH整合JSON
- Json数据处理方法
- 05-js 操作select和option
- JavaScript 字符串转换数字
- 禁止右键js
- javascript高级编程技术 第二章