随笔分类 - Ember.js
摘要:一、The {{action}} Helper 你的应用程序通常会需要一种方法来让用户用控件交互改变应用程序状态。 例如,你有一个显示blog post的模板,并支持用额外的信息扩展post。 可以使用{{action}}去让一个HTML元素可点击。当用户点击这个元素,命名的事件将会被发送到你的应用
阅读全文
摘要:一、The {{link-to}} Helper 1. 使用{{link-to}}创建一个指向route的链接: app/router.js Router.map(function() { this.route("photos", function(){ this.route("edit", { p
阅读全文
摘要:1. 一个HTML元素的class属性可以像其他属性一样被绑定: Warning!生成的HTML Warning!2. 条件值如果你需要一个基于条件属性的class值,使用if: Warning!如果isUrgent是false,HTML: Warning!如果是true: Warning...
阅读全文
摘要:一、概述除了正常的文本,你可能还需要你的模板中包含的HTML元素的属性绑定到controller。1. 例如,设想controller有一个属性包含一个图片的URL: 生成的HTML: 2. 如果你绑定的是一个布尔值,它将会添加或者移除一个特定的属性。例如:如果isAdministrator是t...
阅读全文
摘要:一、 概述 1. example 如果你需要遍历一个对象集合,使用Handlebars的{{#each}}。 <ul> {{#each people key="id" as |person|}} <li>Hello, {{person.name}}!</li> {{/each}} </ul> 上面的
阅读全文
摘要:有时候你可能仅仅想展现模板的一部分,如果属性存在的话。 1. 我们可以使用{{if}}去有条件的渲染一块: {{#if person}} Welcome back, <b>{{person.firstName}} {{person.lastName}}</b>! {{/if}} 如果传递的参数的值是
阅读全文
摘要:1. 当你的应用程序启动时application模板是默认被渲染的的模板。 2. 你应该把你的header, footer和其他任何的装饰内容放到这里。此外,你应该有至少一个{{outlet}}:它是一个占位符,路由器将根据当前的URL填入适当的模板。 3. example: app/templat
阅读全文
摘要:一、简介 Ember.js使用Handlerbars模板库来强化应用程序的用户界面。它就像普通的HTML,但也给你嵌入表达式去改变现实的内容。 Ember使用Handlerbars并且用许多新特性去扩展它。对于描述app的用户界面来说,它可以帮你考虑Handlerbars模板作为HTML就像DSL。
阅读全文
摘要:在Ember.js中,枚举是包含许多子对象的任何对象,并允许你使用Ember.Enumerable API和那些子对象一起工作。在大部分应用程序中最常见的可枚举是本地JS数组,Ember.js扩展到符合可枚举接口。 通过提供一个标准化的接口处理来可枚举,ember.js让你彻底改变存储的底层数据的方
阅读全文
摘要:有时候新用户在使用计算属性、绑定和监视者时感到困惑。下面是一些指导方针:1. 使用computed properties来合成其他属性,以构建新的属性。computed properties不应该包含应用程序行为,当被调用时,通常不会引起任何副作用。除了在罕见的情况下,多次调用相同的computed...
阅读全文
摘要:一个binding在两个属性之间创建一个链接,当一个改变时,另外一个被自动更新为一个新的值。 bindings可以在同一个对象中连接两个属性,或者用在两个不同的对象中。 不像大多数框架一样包含某种形式的绑定实现,在Ember.js中bindings可以被用于任何对象,而不仅仅是在views和mode
阅读全文
摘要:Ember支持监视任何属性,包括计算的属性。你可以使用Ember.observer为一个对象设置一个监视者: Person = Ember.Object.extend({ //these will be supplied by 'create' firstName: null, lastName:
阅读全文
摘要:1. 通常,你可能有一个计算的属性依赖于数组中的所有元素来确定它的值。例如,你可能想要计算controller中所有todo items的数量,以此来确定完成了多少任务。 export default Ember.Controller.extend({ todos: [ Ember.Object.c
阅读全文
摘要:一、What are computed properties? 1. 简而言之,计算属性让你声明函数为属性。你通过定义一个计算属性作为一个函数来创建一个,当你请求这个属性时,Ember会自动调用这个function。 之后你可以用同样的方法使用它,任何正常静态属性。 2. 对于获取一个或多个正常的属
阅读全文
摘要:1. 你不需要一开始定义一个类的全部内容,你可以通过使用reopen方法重新打开一个类并定义新的属性。 Person.reopen({ isPerson: true }); Person.create().get('isPerson') //true 2. 当使用reopen时,你也可以重写已经存在
阅读全文
摘要:一、Defining Classes(定义类) 1. 定义一个新的Ember类,调用Ember.Object上的extend()方法: example:定义了一个含有say()方法的新的Person类。 Person = Ember.Object.extend({ say(thing) { aler
阅读全文
摘要:一、Templates 使用Handlebars模板语言来描述程序的用户接口。每一个模板都有model的支持,如果model改变template就会自动更新。 Expressions: like {{firstName}} --从模板的模型获取信息并把它放入HTML中。 Outlets: 是其他模板
阅读全文
摘要:Ember.js使用一个运行时解析器去连接你的对象而没有很多样板文件。作为一个开发者,如果你把code放到约定好的位置这个解析器会自动工作。 一、The Application 1. 当你的app启动时,Ember.js将渲染application template作为主要模板。 2. 如果提供了c
阅读全文

浙公网安备 33010602011771号