Ember 1.5.0和1.6 Beta发布

作者: Robert Jackson

1.5中得新特性

Handlebars记录原生值

本特性允许在模板中log原生数据类型的值(字符串、数字等)

1
{{log "**LOOKEY HERE**"}}

新测试助手

路由助手

添加了一些新的测试助手,以便可以方便的断言应用的路由所处的状态(例如点击一个链接后重定向到一个指定的路由)。

新测试助手包括:currentRouteNamecurrentPathcurrentURL

触发事件助手

triggerEvent助手可以用于在一个元素上触发任意的事件。

...
阅读全文

Ember Data 1.0 之路

作者: Tom Dale & Yehuda Katz

TL;DR Ember Data即将迎来1.0时代。在能自信的保证不再破坏API之前,还需要实现最后几个特性。特别是:

  1. 保证在一个双向的关联中得一端发生改变时,另一端保持同步,即使其并未加载。

  2. 所有关联将使用异步模式,DataBoundPromises将确保其能再观察器、计算属性和模板中都能正常工作。

就像之前路由设计的尝试一样(已被证明是Javascript中得最好的实现),为了让Ember Data更好的工作,花费了比设想要多很多的事件,不过现在其已经非常接近1.0正式版了。

... 阅读全文

EmberJS.CN一周岁

作者: Tower He

时间飞逝,日月如梭。从上线EmberJS.CN到今日,整整一周年过去了。一年里Ember社区改变了许多,特别是在Ember1.0正式版发布之后,更是发展迅速。不论是代码结构、新特性、运行的稳定性,还是文档、教程等等方面都有了很大的改进。时至今日,Ember.js已经发布了1.4.0版本,Ember Data也推出了1.0.0-beta.6版本,相信不久就会迎来ED的1.0正式版,届时肯定又会掀起整个社区的一次大骚动。

在过去的一年里,Ember.js的里程碑:

  • 2013-02-15 Ember...
阅读全文

Ember 1.4.0和1.5 Beta发布

作者: Robert Jackson

1.4中的新特性

属性大括号扩展

在之前的Ember版本中,如果需要观察bazfoobar属性,需要在同时设置baz.foobaz.bar两个依赖键。

1
2
3
4
5
6
7
var obj = Ember.Object.extend({
  baz: {foo: 'BLAMMO', bar: 'BLAZORZ'},

  something: function(){
    return this.get('baz.foo') + ' ' + this.get('baz...
阅读全文

安全性发布 - Ember 1.2.2, and 1.3.2

作者: Robert Jackson

因为开发者信任Ember.js在生产环境下来处理敏感的用户数据,因此Ember团队非常关注项目的安全问题。实际上,Ember是少数具有清晰的安全策略和一个为安全问题专设的邮件列表的Javascript项目之一。

今天Ember.js发布了1.2.2,1.3.2和1.4.0-beta.6,其中包含了一个重要安全问题的修复:

本次发布修复了一个XSS漏洞,在安全问题邮件列表中可以得到关于...

阅读全文

使用Ember.SimpleAuth实现用户登录逻辑

Ember.SimpleAuth是一个实现身份认证和授权的轻量级的Ember.js库。通过配置身份认证和授权策略可以实现任意形式的身份认证和授权机制。

搭建Ember.SimpleAuth开发环境

安装RubyGems。

1
2
  cd /path/to/ember-simple-auth
  bundle install

运行测试

  1. 在命令行中运行测试

    1
    
    rake test
    
  2. 在浏览器中运行测试

    1
    2
    3
    
    rackup
    
    # 然后访问:http...
阅读全文

如何使用ember-dev来开发Ember包

Ember Dev是什么?

Ember Dev是由Ember核心团队开发的一个用来辅助开发Ember包的工具。目前还处于“社会主义初级阶段”,可谓是“万里长征”迈出了好几步。目前Ember Dev已经包含了一些基本的工具,可以帮助我们提高Ember包开发的速度。其为我们搭建了开发、测试、发布等基本操作环境。用官方的语言来表达一下Ember Dev现在的状态:

“目前Ember Dev还不推荐公众使用,因为还缺少一些重要的特性,比如缺少生成器。”

尽管如此,我们还是可以放心的使用Ember...

阅读全文

安全性发布 - Ember 1.0.1, 1.1.3, 1.2.1, and 1.3.1

因为开发者信任Ember.js在生产环境下来处理敏感的用户数据,因此Ember团队非常关注项目的安全问题。实际上,Ember是少数具有清晰的安全策略和一个为安全问题专设的邮件列表的Javascript项目之一。

今天发布的Ember.js 1.0.1,1.1.3,1.2.1,1.3.1和1.4.0-beta.2包含下面的重要的安全修复:

阅读全文

Ember Data 1.0.0.beta.5发布

Ember Data Changelog

  • 如果没有指定factory,那么在modelFor中实现键值标准化;
  • store.filter总是返回一个FilteredRecordArray
  • 带选项的属性支持key选项;
  • 修正windows构建的问题;
  • 添加DS.Errors对象;
  • 处理单个对象的pushPayload
  • recordArrayManager中创建RecordArrays
  • 添加更多文档说明。
阅读全文

Ember 1.3.0 and 1.4 Beta Released

作者: Robert Jackson

We are pleased to announce that both Ember.js 1.3.0 and the first beta in the 1.4 series have just been released. This comes as the third cycle of our six-week release process that began just after 1.0 was released.

New in 1.3

Non-array Dependencies...

阅读全文

What's Coming in Ember in 2014

作者: Tom Dale

Every few months, the Ember core team likes to get together to discuss issues face-to-face and set our priorities for the following quarter.

This time, we all converged on Portland, Oregon for the weekend to figure out where to focus our energy in...

阅读全文

完成Ember指南中文翻译

作者: Tower He

Ember.js中文站http://emberjs.cn,诞生在浪漫的情人节之后的一天。时至今日,已过去了338个日夜。在这期间Ember.js改变了很多:

  • Ember.js从第一个RC走到了如今1.2.0版本的正式发布
  • Ember Data也迎来了新的1.0接口的beta发布
  • 第三方插件也如雨后春笋帮开始涌现到社区

那么我们Ember.js中文站又发生了些什么改变呢?

  • 首先我们完成了指南的中文化工作
  • 再而我们拥有了供我们中文社区进行交流的平台
阅读全文

Ember 1.0 Released

作者: debbbbie

怀着激动的心情向大家发布 Ember.js 1.0 最终版。为 Ember.js 第一次提交代码是在 2013 年 4 月 30 号, 距今已经将近两年半。

当时 Backbone.js 发展非常迅速。因为像 SproutCore, Cappuccino, 还有 Dojo 等这些大型类库, 他们都试图从 HTML 中抽象出来,越来越多的开发者反对他们,因为不能做到一个小屋就阅读完源代码。使得“小 型代码库”迅速发展。

浏览器正在变得越来越强大,用户开始需要这种简单的抽象,并不会急剧增大...

阅读全文

Ember 1.0 RC8发布

Ember 1.0 RC8是1.0正式版前的最后一次发布,如果一切顺利本周末将发布Ember 1.0正式版。

在RC8中做了一些1.0正式版之前的重大更改,这些更改对应用代码只有很少的影响,不过带来了很大的性能提升。

这些更改都与观察器有关。如果编码的时候使用了大量的观察器,那么可能意味着代码不符合语言习惯。通常只在与其他不支持绑定机制的库桥接的时候需要使用观察器。

例如,如果编写一个包裹jQuery UI控件的组件时,可能需要使用观察器来监视组件上的改变,并将这些改变反映到控件上。

阅读全文

Windows下Ember应用开发环境搭建

作者: Jun Yang

环境:windows 7

安装nodejs

安装grunt

安装grunt命令行工具grunt-cli

执行全局安装

1
2
3
4
  # grunt 必须依赖
  npm install -g grunt-cli
  # 生成项目脚手架 grunt-init --help
  npm install -g grunt-init

安装Yeoman

Yeoman 是 yo + bower + grunt

  • yo: 生成 项目脚手架
  • bower: 包管理工具
...
1
阅读全文

Ember.js 1.0 RC7发布

今天Ember.js 1.0 RC7发布了!如果一切顺利,这将是Ember 1.0的倒数第二个RC版本。RC7中修复了许多Bug,同时也包括了一些小的改进。另外还有一些Bug还在修正中,由于RC7已经逾期了,因此不等修正所有的Bug。下周将发布RC8,下面内容包含了本次发布做的一些修改。

重要改变

Route#controllerFor不再自动生成控制器

有的时候,人们依赖controllerFor来访问没有进入过的路由的控制器,依赖其自动生成的功能。然而不幸地是这样经常会导致一些小问题。当...

阅读全文

Ember.js 1.0.0-rc6发布

作者: Tower He

Ember.js 1.0 RC6 发布,可以在官方网站builds.emberjs.com下载。本次发布主要有个大的更新:

  • 路由器更新
  • Ember组件

路由更新

最大的修改就是路由器更新(或“路由整容”),围绕两个方面的主要问题:第一是基于URL的转换与transitionTo的语义不一致。第二是异步支持不够好,使得很难在路由入口的地方实现一些禁止和延时的操作,比如身份验证和异步代码加载。

Ember现在统一了URL改变和transitionTo的语义,并且采用了Promise...

阅读全文

第七期周报

作者: Tower He

本期周报主要介绍与测试相关的内容:

读物

如何TDD开发Ember.js应用

文中详细介绍了如何使用jasmine来进行Ember.js应用的TDD开发。

使用jasmine测试Ember.js的模板

文中介绍了如何使用jasmine来对Ember.js的模板进行单元测试。

视频

简捷的测试Ember.js应用

ember-testing库的作者Erik Bryn主讲的如何使用ember-testing来测试Ember.js应用。

使用Konacha来测试Ember.js应用

视频中演示了一个...

阅读全文

Ember.js 1.0.0-rc5发布

作者: Tower He

今天是快乐的六一儿童节,Ember.js 1.0 RC5也在这一天发布了。本次发布预示着我们等待已久的Ember.js 1.0正式版马上就要横空出世了。

RC5中主要修复了在RC4中发现的回归问题和缺陷。主要包括:

  • 修复了因为改动了运行循环计划而导致的性能问题。
  • 修复了如果路由的模型钩子返回承诺(Promise)页面刷新时会挂起的问题。
  • 包含辅助测试方法的ember-testing不在包含在生产构建中。这意味着介绍了用户需要从网络加载的Javascript代码。

详细的修订记录:

阅读全文

第六期周报

作者: Tower He

本期周报主要介绍如何搭建Ember.js应用的开发环境。

读物

使用Charcoal创建Ember项目

Charcoal是一个Yeoman的生成器,用于创建Ember项目的基本目录结构和文件。

如何进行Ember开发

Embedly在其产品中使用了Ember进行开发,在开发过程中遇到了许多问题。本文主要介绍了如何构建一个开发Ember应用基础环境。

库、代码和工具

generator-ember

Yeoman的Ember生成器,用来构建一个Ember的“Hello World”应用。

ember...

阅读全文

第五期周报

作者: Tower He

本周Ember.js热点:

视频

Ember Model入门

本视频介绍了如何使用Ember Model

Emblem.js入门

Emblem.js是一个基于缩进的模板语言,它编译的结果与Handlebars模板一样,因此完全兼容Ember.js。本视频主要介绍了Emblem的语法和如何使用Emblem.js来写模板。

采用Ember.js和PhoneGap构建移动应用

视频中介绍了如何采用Ember.js和PhoneGap来构建一个移动应用,通过观看该视频,你会发现原来一切来的如此简单。

阅读全文

第四期周报

作者: Tower He

本周Ember.js热点:

读物

结合Ember.js和Windows Azure移动服务开发Web客户端

一个系列教程,总共分为四部分,作者Larry Franks详细的介绍了如何采用Ember.js来开发一个基于Windows Azure移动服务的单页应用,最后还介绍了如何将做好的应用部署到Windows Azure Web站点。

Ember JS: 浏览器端MVC,第三部分 – 嵌套资源

一个以Ember.js为例,介绍浏览器端MVC的系列教程,本篇为第三篇,重点介绍了Ember.js...

阅读全文

第三期周报

作者: Tower He

本周Ember.js热点:

读物

在Ember.js中创建计算宏

在定义计算属性的时候,经常会碰到多个属性需要编写大致相同的逻辑代码。通过计算宏,可以将这种重复降低到最低。

Ember.js JSON APIs

详细介绍了JSON APIs的两种不同风格(ID风格和URL风格)。ID风格简单易用,也是我们通常采用的风格,其问题在于需要客户端能够根据ID来猜测API的地址,这样会将服务端API的结构禁锢,当API变得庞大时,可能会导致问题。@wycats建议我们先从ID风格的入手,如果可能的话...

阅读全文

第二期周报

作者: Tower He

本期对周报的内容进行了一点小的调整,就是主要内容的标题如果是英文的对被翻译为中文。

本周Ember.js热点:

读物

运用Yeoman和Mocha的Ember.js应用开发工作流

文章介绍了如何使用Yeoman来构建一个Ember.js应用。其中包括如何使用Yeoman来创建一个应用结构,如何编译,如何运行和如何测试等。

视频

从零开始使用Ember.js构建RSS阅读器

Gordon通过一个40分钟的视频,讲述了如何使用Ember.js从零开始来构建一个RSS阅读器。该阅读器实现的模型部分...

阅读全文

第一期周报

作者: Tower He

各位朋友大家好,本站计划从本周开始,对Ember.js社区里面每周发生的大事、小事、琐事进行收集与报道,希望大家喜欢。另外,欢迎大家给我们提出宝贵的意见,并踊跃参与投稿。投稿地址为论坛的分享版块:http://discuss.emberjs.cn/category/4-category。谢谢!

本周Ember.js热点:

读物

EMBER APPLICATION INITIALIZERS

Ember应用初始化程序提供了一个入口,帮助我们在Ember应用初始化的时候执行一些特定的代码,完成一...

阅读全文

两种方式实现用户管理(一)

作者: pudgecon

本文共两篇文章,通过两种常见的方式实现了一个简单的用户管理。

一种是采用跳转至一个新页面进行用户信息查看与修改;另一种是采用在同一个页面进行用户信息查看与修改。

第一篇讲述使用第一种方案实现的过程。

首先是创建应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
App = Ember.Application.create();


App.Store = DS.Store.extend({
    revision: 
阅读全文

两种方式实现用户管理(二)

作者: pudgecon

本文通过两种常见的方式实现了一个简单的用户管理。

一种是采用跳转至一个新页面进行用户信息查看与修改;另一种是采用在同一个页面进行用户信息查看与修改。

上一篇讲述使用第一种方案实现的过程。

这一篇讲述使用第二种方案实现的过程。

首先是相同的创建应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
App = Ember.Application.create();


App.Store = DS.Store.extend...
阅读全文

Ember.js 1.0.0-rc3发布

作者: Tiffany Zhou

Ember.js 1.0.0-rc3发布了。正如在发布rc1时曾经提到过的那样,在1.0版本结束之前的所有版本都只会做bug修复和代码完善,不会有其他重大变化。

性能

自RC2以来,Embe.js改善了一系列性能问题。

  • 当相关联的多个子视图准备做插入时,不再像以前那样一个一个添加,而是批量插入。
  • 删除对象改成异步操作,这样做可以保证在删除一个对象的时候,与其相关联的对象不会出现不必要的扰动。
  • 减少了在视图渲染时分配的对象的数量。

测试

App#reset做了大量的修复以及改善工作,...

阅读全文

如何获取应用当前登录的用户信息

作者: TowerHe

论坛中发起了一个关于如何获取应用当前登录用户信息的最佳实践的讨论。在这里尝试采用讨论中给出的方案二来实现获取登录用户。其他的方案请查看http://discuss.emberjs.cn/t/topic/19。

在写应用的时候,几乎所有应用都有一个不变的需求,就是获取当前登录的用户的相关信息。比如用户的ID、用户名、头像、角色等等。那么在.js中应该如何解决这个需求呢?下面将尝试找出一个比较通用的方法,来获取应用当前登录的用户信息。

首先,假设我们需要获取的用户信息的数据结构如下所示:

阅读全文

Ember入门实践

作者: TiffanyZhou

本文翻译自:Ember: Baby Steps

首先让我们用Ember官方网站上的一句话来介绍Ember:

1
A framework for creating ambitious web applications

基本配置

由于Ember的官方指南主要关注概念性的东西,而没有太注重实用性,所以,要亲自动手配置Ember可能不那么容易。在开始编写我们的代码之前,我们就先从头开始配置一下环境:(本文所有操作都基于linux)

首先创建项目文件:

1
2
mkdir...
阅读全文

Ember.js 1.0.0-rc2发布

作者: Tower He

今天Ember.js 1.0.0-rc2发布了,改版本主要完成了Bug的修订和文档的增强,另外也改进了一些内部的处理逻辑,使Ember.js更加趋于稳定。

变更记录:

  • 改进了应用初始化过程,废弃了Ember.Application#initialize,使用deferReadinessadvanceReadiness取代。
  • 添加Ember.Application#then,其如同isReady钩子一样触发。
  • 添加更多Ember.computed宏。
  • 为计算属性添加readOnly标...
阅读全文

指南目录结构调整

作者: Tower He

为了更好的为大家提供信息,我们对指南的目录结构进行了调整。原来的中英对照指南改为中文指南,并将原来的中英双语对照指南独立开来。这样我们可以更加方便的保持中文指南与官方的指南同步。但这会影响到现在已经在进行的翻译工作,需要各位根据最新的目录结构进行调整,由此带来的不便,敬请原谅!

经过调整后,我们提供了独立的中英双语对照指南,这也就成为了我们翻译工作新的工作目录(source/bilingual_guides)。由于目录结构发生了改变,我们翻译工作的流程也随之需要进行一些调整。调整后的翻译...

阅读全文

Ember.js准备发布RC2了

作者: Tower He

大新闻,Ember.js团队已经开始了发布RC2的相关工作。

今天看到@wycats在website上创建了一个rc2-release的分支,并且在一篇即将发布的文章中说已经开始了Ember.js RC2发布的的相关工作。这说明了什么呢?这说明了我们离1.0正式版的发布又近了一步。这实在是一个不得不让人为之兴奋的消息。

如RC1发布时所声明的一样,之后发布的版本只会做一些问题修正和增强性改变,不会进行破坏性变更。那么我们看看RC2会给我们带来些什么呢?

按命名空间查找控制器

在之前的版...

阅读全文

Emberjs.cn域名正式启用

作者: Tower He

经过20天的等待,今天终于收到工信部告知域名备案通过的信息,从现在开始http://emberjs.cn域名正式启用。特在此处Mark一下,以纪念这一神圣的时刻。

另外,最近翻译团队加入了一位给力的成员TiffanyZhou,提供了很多高质量的翻译作品。随着队伍的不断壮大,我们一定能打造出一个高质量、精品的Ember.js中文社区。

BTW,我们已经开始在实际的项目全面采用Ember.js进行前端开发,在后续的日子里面,我们将会将我们在开发过程中遇到的问题,总结出来的经验拿出来,与大家...

阅读全文

为什么Discourse选择Ember.JS

作者: Tower He

Discourse的推出在整个社区赚足了眼球,由于Discourse选择使用Ember.JS作为前端MVC框架,这促使Ember.JS也成为了热议的话题。一年多以前SproutCore2正式改名为Ember.JS后,本人持续的关注了Ember.JS的开发过程,见证着Ember.JS的成长。Ember.JS的API在整个社区共同协作的基础上日趋稳定,Ember.JS 1.0.rc1的推出,更是标着其API已经成熟。我相信越来越多基于Ember.JS实现的优秀的应用,将会像雨后春笋般涌现出来。

阅读全文