如下代码会根据model产生不同的table项,在进行其他设置后,一般是根据id来跳转到相应项目子项中;

{{#each}}
{{#link-to "tabls" this}}{{name}}{{/link-to}}
{{/each}}  

这时候我们可能需要一额外的按钮而不是直接点击连接进行子项目的前进与后退,可采用如下方法:

方法1:

在对应controller内设置:

nextId : function(){
var arrs = //获得对应子项目的content;
var thisId = //获得当前项目的id;
for(var idx=0; idx < arrs.length; idx++) {
if(arrs[idx].id > thisId) break;
}
idx = idx < arr.length ? idx : 0;
return arrs[idx].id;
} prevId : function(){
var arrs = ..;
var thisId = ..;
for(var idx = arrs.length-1; idx >=0; idx--) {
if(arrs[idx].id < thisId) break;
}
idx = idx >=0 ? : arrs.length - 1;
return arrs[idx].id;
}

然后在相应模版中设置:

 {{#link-to "testResult" nextId}}next{{/link-to}}
{{#link-to "testResult" prevId }}prevId{{/link-to}}
//这里说明连接是可以通过直接使用id跳转;

方法2:

 在对应controller内设置:

nextId: function() {
var quizs = //获取项目,
index = quizs.indexOf(this.get("model"));
return quizs.objectAt(index+1);
}.property("model.id"),
prevId: function() {
var quizs = //获取项目,
index = quizs.indexOf(this.get("model"));
return quizs.objectAt(index-1);
}.property("model.id"),

然后在模版中设置:

  

{{#if nextId}}
{{#link-to "testResult" nextId}}next{{/link-to}}
{{/if}}
{{if prevId}}
{{#link-to "testResult" prevId }}prevId{{/link-to}}
{{/if}}
//这里说明连接也可以通过传入对应子项目跳转;

方法3:

 在对应controller内设置:

advanceQuiz: function(delta) {
var index,length,quizs;
quizs = //获得项目;
length = quizs.get("length");
index = (quizs.indexOf(this.get("model")) + delta + length) % length;
return this.transitionToRoute("testResult",quizs.objectAt(index));
//这里使用transitionToRoute,注意后面的route要书写正确;
},
actions: {
nextId: function() {
return this.advanceQuiz(-1);
},
prevId: function() {
return this.advanceQuiz(1);
}
},

然后在模版中直接设置action就可以了,这里并没有使用链接,而是使用transitionToRoute方法来跳转;



  

ember.js:使用笔记6 子项目的前进与后退的更多相关文章

  1. 【前端】Ember.js学习笔记

    Model 在默认情况下,model钩子返回的值,会设置为关联的控制器的model属性.例如,如果App.PostsRoute通过model钩子返回了一个对象,这个对象会设置为App.PostsCon ...

  2. ember.js学习笔记

    启动服务器 ember server 访问localhost:4200 创建新的路由:ember generate route 路由名称,运行此命令会同时创建一个/templates/.XXXhbs模 ...

  3. ember.js:使用笔记9 开始单元测试

    单元测试被限定在一个范围内,并且不需要Ember应用运行. 使用前准备: 加入Ember-QUnit:获取一系列测试助手帮助单元测试:加入 mian.js; 加入根元素(与集成测试的时候一样):App ...

  4. ember.js:使用笔记8 加载测试与集成测试

    emberjs使用的测试工具为qunit.js: 加载:将runner.js添加到Index.html:大致内容: if (window.location.search.indexOf("? ...

  5. ember.js:使用笔记2-数据删除与存储

    在模版中写好响应操作触发的action之后,可以在controller:actions中设置了,需要注意的是对数据的操作一般都是对单个object进行操作,所以先要使用笔记1中的方法使用ObjectC ...

  6. ember.js:使用笔记1-数组数据统一显示

    ember中数据一般都是以array的形式存储的,控制器使用,如: App.DataController = Em.ArrayController.extend({}); 想要在一个页面中输出所有的数 ...

  7. ember.js:使用笔记5 使用view

    在已经设置route的情况下,以table为例,可以如下设置,范围为对应的模版: App.TableView = Em.View.extend({ }); App.TableIndexView = E ...

  8. ember.js:使用笔记10 常用方法

    init: controller中初始化方法,                               //注意该方法是在其他方法之前,所以取不出this,model等值: 跳转:this.tra ...

  9. ember.js:使用笔记7 页面中插入效果

    在某些情况下,我们需要根据数据生成某些效果:由于每个模版的controller可能不同,在不同页面之间跳转可能会无法随即更新的问题. controller: 直接使用标签:{{}},适用于在子项目内切 ...

随机推荐

  1. ExtJS学习之路第四步:看源码,实战MessageBox

    可以通过看MessageBox.js的源码来深入认识,记住它的主要用法.Ext.MessageBox是实用类,用于生成不同风格的消息框,它是Singleton(单例),别名Ext.Msg.注意Mess ...

  2. 关于windows系统下 webpack的使用

    最近包子在研究webpack打包,发现,真是个好东西,以前完全不懂,其实很简单,步骤如下: 1.安装webpack嘎嘎嘎嘎~~~ 2.初始化一下 3.这玩意是啥,我不知道,就依葫芦画瓢 4.这玩意是啥 ...

  3. Q1微信用户增长11% 微信生态圈逐渐完善

    就在今天早些时候,腾讯公布了Q1财报,微信和手Q游戏收入达18亿元,微信用户环比增长11%,微信生态圈逐渐完善.和xmyanke一起来看看具体的财报数字分析. 微信和手Q游戏付费用户环比增长100%以 ...

  4. Help Me with the Game(imitate)

    Help Me with the Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3630   Accepted:  ...

  5. JavaScript中的Function(函数)对象详解

    JavaScript中的Function对象是函数,函数的用途分为3类: 作为普通逻辑代码容器: 作为对象方法: 作为构造函数. 1.作为普通逻辑代码容器 function multiply(x, y ...

  6. php面试题之三——PHP网络编程(高级部分)

    三.PHP网络编程 [!!!]1.禁用COOKIE后SEESION还能用吗?(51.com笔试题) 可以,COOKIE和SESSION都是用来实现会话机制的,由于http协议是无状态的,所以要想跟踪一 ...

  7. A PHP extension for Facebook's RocksDB

    A PHP extension for Facebook's RocksDB 31 commits 2 branches 0 releases 2 contributors C++ 90.5% C 8 ...

  8. svn 设置

    \Release *\Debug *\bin *\Bin *\obj *\_ReSharper* *\.hg *.ReSharper *.resharper *\Generated_Code *\VB ...

  9. 37.寻找丑数[Ugly numbers]

    [题目] 我们把只包含质因子2.3和5的数称作丑数(Ugly Number),例如:2,3,4,5,6,8,9,10,12,15,等,习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第1500个丑 ...

  10. cocos2dx3.0rc导出自定义类到lua的方法

    以前要导出c++类到lua,就得手动维护pkg文件,那简直就是噩梦,3.0以后就会感觉生活很轻松了. 转载请注明出处http://www.cnblogs.com/mrblue/p/3637910.ht ...