如下代码会根据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. javascript和HTML5上传图片之前实现预览效果

    一:FileList对象与file对象 FileList对象表示用户选择的文件列表,在HTML4中,file控件内只允许放置一个文件,但是到了HTML5中,通过添加multiple属性,file控件内 ...

  2. artEditor增加表单提交功能

    摘要: artEditor.js是一款移动端的富文本编辑器,支持图片上传,后面会增加表情.小视频等功能.最近有朋友反馈artEditor是否支持表单提交,当然是支持的,在未开发该功能之前,你可以像下面 ...

  3. 在VMware上面安装Solaris 10

    导读 Oracle Solaris 11 是世界上最先进的企业操作系统,提供安全.速度.简单的企业云环境和DevOps.在这篇文章中我们将使用Solaris 10版本,但您可以按照同样的步骤,来安装刚 ...

  4. characterCustomezition的资源打包代码分析

    using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine; class Creat ...

  5. openCV的基本操作

    http://www.cnblogs.com/luluathena/archive/2010/09/29/1838471.html

  6. tomcat安全配置(二)

    1. JVM 1.1. 使用 Server JRE 替代JDK. 服务器上不要安装JDK,请使用 Server JRE. 服务器上根本不需要编译器,代码应该在Release服务器上完成编译打包工作. ...

  7. Linux_DHCP服务搭建

    Linux网络参数的设置 1.        修改主机名 # vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=bj.com 2.        修 ...

  8. MYSQL索引失效的各种情形总结

    1) 没有查询条件,或者查询条件没有建立索引  2) 在查询条件上没有使用引导列  3) 查询的数量是大表的大部分,应该是30%以上.  4) 索引本身失效 5) 查询条件使用函数在索引列上,或者对索 ...

  9. 部署Office Web Apps Server并配置其与SharePoint 2013的集成

    部署Office Web Apps Server并配置其与SharePoint 2013的集成   Office Web Apps Server 是新的 Office 服务器产品,它提供 Word.P ...

  10. c++ const总结

    [本文链接] http://www.cnblogs.com/hellogiser/p/cplusplus-const-summay.html 看到const 关键字,C++程序员首先想到的可能是con ...