在模版中写好响应操作触发的action之后,可以在controller:actions中设置了,需要注意的是对数据的操作一般都是对单个object进行操作,所以先要使用笔记1中的方法使用ObjectController. 新增并存储数据: 模版中可以设置 {{input type="text" class="form-control" placeholder="title" value=newTitle}} 来进行双向绑定,在控制器actions…
Model 在默认情况下,model钩子返回的值,会设置为关联的控制器的model属性.例如,如果App.PostsRoute通过model钩子返回了一个对象,这个对象会设置为App.PostsController的model属性. (模板是如何知道该使用哪个模型进行渲染的呢?模板通过查找其关联的控制器的model属性来进行渲染.例如,photos模板将会使用App.PhotosController的model属性来进行渲染.) Ember Data 在Ember中,每个路由都有与之相关联的一个…
ember中数据一般都是以array的形式存储的,控制器使用,如: App.DataController = Em.ArrayController.extend({}); 想要在一个页面中输出所有的数据,可以在模版中使用{{#each}}输出Aarray的每个Object,这时时候可能需要对每个Object进行操作,使用ObjectController;可以在每个each中使用itemController来新建一个ObjectController: {{#each data in model i…
除了之前介绍的将数组数据在一个页面中输出的方法,还可以将数组数据分组,按照点击,在不同页面中分别显示,方法为: Model: 例如:Table Router: 设置一个父对象和子对象设置: this.resource("tables",function() { this.resource("table",{path:"/:table_id"}); //依照id输出 }); Route: App.TablesRoute = Em.Route.ext…
启动服务器 ember server 访问localhost:4200 创建新的路由:ember generate route 路由名称,运行此命令会同时创建一个/templates/.XXXhbs模板文件和/route/XXX.js文件 注:要看见新路由的内容需要,URL改为:localhost:4200/路由名称,此外,在application.hbs文件内需要有{{outlet}}…
单元测试被限定在一个范围内,并且不需要Ember应用运行. 使用前准备: 加入Ember-QUnit:获取一系列测试助手帮助单元测试:加入 mian.js; 加入根元素(与集成测试的时候一样):App.rootElement = '#ember-testing'; 设置单元测试: Ember.setupForTesting();   //关闭Ember自动运行循环的执行,让用户一定程度上控制运行循环流程: emq.globalize();   //使助手函数变成了全局可用: 解析器: setRe…
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…
在Javascript是可以使用delete来手动删除变量,通过这样的方法让GC来回收内存,但在JS中并不是所有的对象都可以被删除的 JS中通过 var\function 声明因含有DontDelete,而不可被删除: var x = 1;delete x; // falsetypeof x; // 1 function x(){}delete x; // falsetypeof x; // "function" 但是对象的属性.数组成员却是可以删除的: var o = { x: 1…
在某些情况下,我们需要根据数据生成某些效果:由于每个模版的controller可能不同,在不同页面之间跳转可能会无法随即更新的问题. controller: 直接使用标签:{{}},适用于在子项目内切换的时候及时更新: view: 使用didInsertElement: 适用于在其他页面切换到当前view的情况下:  …
在已经设置route的情况下,以table为例,可以如下设置,范围为对应的模版: App.TableView = Em.View.extend({ }); App.TableIndexView = Em.View.extend({ }); 也可以通过如下新建,其获得的this为所在模版的this; {{#view InnerView}}......{{/view}} InnerView = Ember.View.extend({}); 简单设置: 设置整体的标签: tagName 设置class…