Ember.js 1.0.0-rc3发布
作者: Tiffany Zhou –
Ember.js
1.0.0-rc3发布了。正如在发布rc1时曾经提到过的那样,在1.0版本结束之前的所有版本都只会做bug修复和代码完善,不会有其他重大变化。
性能
自RC2以来,Embe.js改善了一系列性能问题。
- 当相关联的多个子视图准备做插入时,不再像以前那样一个一个添加,而是批量插入。
- 删除对象改成异步操作,这样做可以保证在删除一个对象的时候,与其相关联的对象不会出现不必要的扰动。
- 减少了在视图渲染时分配的对象的数量。
测试
为App#reset
做了大量的修复以及改善工作,现在,当它被调用的时候,应该会正确的清理应用程序状态。通常情况下,这只用于集成测试。
1 2 |
//before each integration test
App.reset();
|
请注意:现在
App.reset()
本身包含了一个run
循环,不需要在再外部套一个run
循环了。
创建了ember-testing。这个项目的目的是使测试Ember
应用程序更简单,尤其是在需要测试异步性的情况下。随着工作日渐成熟,会给出完整的文档,例子以及指南。
Ember
构建
每一个成功的CI都会把结果发布到http://emberjs.com/builds。这会使引用及使用最新的Ember
构建更简单。
新的{{input}}
和{{textarea}}
助手
现在,TextField
,TextArea
和Checkbox
也有相应的Ember
助手了。
可以像下面这样写了
推荐使用动态标签
而不是{{view}}
助手,因为他们等价于静态标签,而静态标签被大家熟知和喜爱。
要注意的是使用动态标签时,不需要使用Binding
后缀,也不需要为值添加引号。在这里,Ember
将把常量字符串视为静态字符串。
文档
对API文档进行了精炼和补充,在这期间,很多社区成员提供了帮助。
变更记录:
- 如果不需要
thisArg
的话,那么也不需要执行fn.call
了。 - 不再需要交叉构建
insertViewCollection
。 - 如果
LinkView
中没有使用a
标签,那么将不能使用href
。 - 修改了{{linkTo}}文档。
- 在完整的构建代码中增添了
ember-testing
。 - 针对Opera,将
jQuery.js(':disabled')
修改为jQuery.js(':disabled').length
。 - 移除声明却未使用的变量。
- 增添
run.scheduleOnce
文档,删除run.once
文档。Fixes #2132。 - 修复
outerHTML
回退的测试。 - 不再依赖
EXTEND_PROTOTYPES == true
。 - 修复
Ember.EnumerableUtils
没有继承prototypes
。 - 不对文档标记
.generateController
。 - 不为
.cachable
构建文档。Fixes #2329。 - 清理
MutableEnumerable
文档。 - 新增
Ember.Application#removeTestHelpers
。 - 修复几个有争议的问题。
- 首次通过了
ember-testing
包的工作。 - 修复'自定义绑定'部分的文档错误。
- 修复方法注释bug。
- 修复重定向到子路由bug。
- 修复
MetamorphView
的DOMManager
replace。 - 修复#870延迟析构以及
App#reset
问题。 - 清除无用变量。
- 使用最新的
Ember
构建更新JSFiddle/JSBin
的入口点配置。最新的构建已经自动上传到builds.emberjs.com
。 - 修复#22388: 为
_resetSubControllers
添加if
语句。 - 将缓存的状态转换哈希值作用域限定到状态管理器类,因此状态管理器的继承和混合行为与预期的保持一致了。
- 修复发行版本构建的上载。
- 更新到最新的
ember-dev
以便发行任务可以正常工作。 - 配置
Travis
以便能自动部署到AWS
。 - 新增漏掉的条目类型。
- 在测试时不产生
Ember.alias
废除警告。 - 对
ViewCollection
新增invokeRecursively
。 - 失败的测试显示使用
mixins
获取状态的StateManager
有未知行为。 - 修复
HistoryLocation
的rootURL
处理器及webkit方案。 - 清除助手函数中的无用参数。
- 使用
toArray
移除副本。 - 允许了
option
视图以便可以重写Ember.Select
。 - 真正的使
Ember.alias()
输出弃用警告。 - 使用
Ember.String.fmt
代替String
扩展。 - 自动上载所有通过的构建到s3。
- 修复#2424 App#reset。
- s/nexts/these(nexts不是单词)。
- 针对
linkTo
路由提供更多更详细的错误信息。 viewName
成为属性。- 清除不需要的闭包。
JSDoc
应该对混合类型使用{*}而不是{anything}或者{any}。- 给
invokeRecursively
增加一个includeSelf
参数。 - 修复ArrayController#length在其content没有显示设置的问题。
- 关闭#2043 - 修复在集合中删除最后元素的问题。
- 阻止应用程序模板复制时被二次渲染。
- 在
mixins
被传递给Object.create
时提供断言。 - 增强
Ember.TargetActionSupport
并引入Ember.ViewTargetActionSupport
。 - 修复{{textarea}}断言信息。
- 测试unwatch方法的
length
属性。 - 测试watch方法的
length
属性。 - 测试iswatching方法的
length
属性。 - 将
Ember.typeof
移动到metal。 - 修复数组watching问题。由于
typeof
和isArray
的差异,曾经不止影响普通数组。 - 移除提到的将
mixins
传递给create。 - 还原
Fix Application#reset destroy
问题。 - 修复视图助手文档和例子以便反映上下文。
- 在命名空间查找阶段忽略
webkitStorageInfo
以消除警告。 - 修复
Fix Application#reset destroy
问题。 - 使Chrome的初始栈状态环境指导
rootURL
。 - 在
RenderBuffer
中,使用字符串代替数组。 - 将循环中的for语句转化为一个简单的for循环。
- 改善视图容器的查找性能。
- 清除
Ember.Deferred
测试中的无用的异步性代码。 - 清除路由测试中的无用的异步性代码。
- 增加{{text area}}。
- 为
enter
提供默认的text
input
action
。 - 增加{{input action="foo" on="keyPress"}}。
- 清除更多metal。
- 更好的组织
ember-metal
和缓存函数查找表。 - 移除从渲染到缓存的同步性。
- 使测试不依赖于同步改变的事件。
- 修复测试以便不期待同步的观察者。
- 在原型中定义
Minix
属性。 - 更新
ember-dev
gem到最新版本。 - 在
Ember.View
原型中共享空数组。根据操作来区分。 - 根据DOM中的insertion来添加views到
Ember.View.views
,而不依赖初始化。Fixs #1553。 - 使对象的异步析构以便在处理相互联系的对象时减少扰动。
- 定义Ember.CoreObject#willDestroy. Fixes #1438。
- 清除不需要的volatile()。
- 匹配transitionTo APIs。
- 避免递归调用transitionTo。
- 改善视图通知及转换性能。
- 提取一个私有的
ViewCollection
辅助类来使同时处理多个视图成为可能。 - 为{{input type="checkbox"}}增加支持。
- 增加
Ember.Handlebars.helper
。 - 增加{{input type="text"}}。
- 批量插入相关联的子视图而不是一个一个的添加。
博客评论基于Disqus