Ember 1.7之查询参数

Alex Navasardyan向JavaScript社区宣布Ember.js 1.7版本发布了。

Navasardyan是Ember.js发布团队的成员之一,他在文中写道新版本带来了“bug修复,潜在的重大修改以及新特性”。

Ember.js 1.7版本的众多新特性之一是支持查询参数。在文章“Ember 1.7.0和1.8 Beta正式发布”中,Navasardyan由衷感谢Alex Matchneer和他的Ember.js核心团队,他描述该特性时说:

有了该API,每个查询参数就和控制器的属性绑定在了一块,如此URL中查询参数一旦发生变化(比如,用户点击返回按钮),控制器中的属性也随之更新,反之亦然。

查询参数API在维护与URL的绑定时,需要处理很多Navasardyan称之为“非常复杂的方方面面”。

以上所说的方方面面包括:将URL中新的查询参数值转换为控制器属性所需要的数据类型;省略URL中默认的查询参数值,以避免默认值对URL产生不必要的干扰;将多个控制器属性的变化合并为单一的URL更新。

其他发布的新特性包括可嵌套路由,解除了只有this.resource才能有嵌套子路由的限制。针对该变化,Navasardyan说,

this.route可以像this.resource那样被嵌套,但是与this.resource不同,子路由的命名空间会追加到父路由后面,而不是重置为顶级命名空间。

在Ember.js讨论区,当提前得知发布查询参数功能后,用户Jinshui Tang评论说此功能“解决了自己应用中与分页相关的部分最重要的问题”。

对查询参数的赞美还有来自Twitter上的Ember用户。EmberSherpa回应Alex Matchneer的发布声明时说“非常感谢团队发布了查询参数功能,这是自1.0版本发布之后最令人兴奋的事情”。

根据Ember.js 1.7.0更新日志,新版本还包括与控制器相关的变动,包括少量的重大更新和废弃功能:

现在content属性衍生自model。这减少了对model/content的诸多说明,而且还设置了一个简单的基本规则:切勿设置控制器的content,而是选择设置其model,Ember会正确处理其他的事情。

针对空数组:

为了与if保持一致,在bind-attr中空数组返回假值。那些依赖此行为的应用注意了,因为旧版本中处理正好相反,在bind-attr中空数组被认为是真值。

1.7版本修复的bug列表中,摘要一部分如下:

  • 使用查询参数的控制器可以进行单元测试。
  • 控制器中新的查询参数在setupController之前已经存在。
  • makeBoundHelper支持不带引号的绑定属性选项。
  • 如果当前值没有变化,SimpleHandlebarsView不应该重新渲染。允许Router DSL通过this.route嵌入路由。

更详细的列表信息请阅读Ember 1.7.0更新日志。

另外根据Ember 1.8 beta的声明,视图层的内部实现已经被重构,以及不推荐在Internet Explorer 6和7上使用Ember,因为在下个主要版本中会删除对IE 6和7的支持。

Ember.js基于MIT协议发布。InfoQ读者可以通过其GitHub项目向Ember.js贡献自己的力量。

查看英文原文:Ember 1.7 Brings Query Params to Community

感谢曹知渊对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(Ember 1.7之查询参数)