ember.js:使用笔记5 使用view】的更多相关文章

在已经设置route的情况下,以table为例,可以如下设置,范围为对应的模版: App.TableView = Em.View.extend({ }); App.TableIndexView = Em.View.extend({ }); 也可以通过如下新建,其获得的this为所在模版的this; {{#view InnerView}}......{{/view}} InnerView = Ember.View.extend({}); 简单设置: 设置整体的标签: tagName 设置class…
Model 在默认情况下,model钩子返回的值,会设置为关联的控制器的model属性.例如,如果App.PostsRoute通过model钩子返回了一个对象,这个对象会设置为App.PostsController的model属性. (模板是如何知道该使用哪个模型进行渲染的呢?模板通过查找其关联的控制器的model属性来进行渲染.例如,photos模板将会使用App.PhotosController的model属性来进行渲染.) Ember Data 在Ember中,每个路由都有与之相关联的一个…
单元测试被限定在一个范围内,并且不需要Ember应用运行. 使用前准备: 加入Ember-QUnit:获取一系列测试助手帮助单元测试:加入 mian.js; 加入根元素(与集成测试的时候一样):App.rootElement = '#ember-testing'; 设置单元测试: Ember.setupForTesting();   //关闭Ember自动运行循环的执行,让用户一定程度上控制运行循环流程: emq.globalize();   //使助手函数变成了全局可用: 解析器: setRe…
启动服务器 ember server 访问localhost:4200 创建新的路由:ember generate route 路由名称,运行此命令会同时创建一个/templates/.XXXhbs模板文件和/route/XXX.js文件 注:要看见新路由的内容需要,URL改为:localhost:4200/路由名称,此外,在application.hbs文件内需要有{{outlet}}…
emberjs使用的测试工具为qunit.js: 加载:将runner.js添加到Index.html:大致内容: if (window.location.search.indexOf("?test") !== -1) { document.write( ‘<div id="qunit"></div>' + '<div id="qunit-fixture"></div>' + '<div id…
在模版中写好响应操作触发的action之后,可以在controller:actions中设置了,需要注意的是对数据的操作一般都是对单个object进行操作,所以先要使用笔记1中的方法使用ObjectController. 新增并存储数据: 模版中可以设置 {{input type="text" class="form-control" placeholder="title" value=newTitle}} 来进行双向绑定,在控制器actions…
ember中数据一般都是以array的形式存储的,控制器使用,如: App.DataController = Em.ArrayController.extend({}); 想要在一个页面中输出所有的数据,可以在模版中使用{{#each}}输出Aarray的每个Object,这时时候可能需要对每个Object进行操作,使用ObjectController;可以在每个each中使用itemController来新建一个ObjectController: {{#each data in model i…
在某些情况下,我们需要根据数据生成某些效果:由于每个模版的controller可能不同,在不同页面之间跳转可能会无法随即更新的问题. controller: 直接使用标签:{{}},适用于在子项目内切换的时候及时更新: view: 使用didInsertElement: 适用于在其他页面切换到当前view的情况下:  …
init: controller中初始化方法,                               //注意该方法是在其他方法之前,所以取不出this,model等值: 跳转:this.transitionToRoute(routename,param);  //形式对应如:this.resource('question', {path: 'test/:fullname/:sequence/:guid'});…
如下代码会根据model产生不同的table项,在进行其他设置后,一般是根据id来跳转到相应项目子项中: {{#each}} {{#link-to "tabls" this}}{{name}}{{/link-to}} {{/each}} 这时候我们可能需要一额外的按钮而不是直接点击连接进行子项目的前进与后退,可采用如下方法: 方法1: 在对应controller内设置: nextId : function(){ var arrs = //获得对应子项目的content: var thi…