Ember.js准备发布RC2了
作者: Tower He –
大新闻,Ember.js
团队已经开始了发布RC2的相关工作。
今天看到@wycats在website上创建了一个rc2-release的分支,并且在一篇即将发布的文章中说已经开始了Ember.js
RC2发布的的相关工作。这说明了什么呢?这说明了我们离1.0正式版的发布又近了一步。这实在是一个不得不让人为之兴奋的消息。
如RC1发布时所声明的一样,之后发布的版本只会做一些问题修正和增强性改变,不会进行破坏性变更。那么我们看看RC2会给我们带来些什么呢?
按命名空间查找控制器
在之前的版本中,我们只能从应用的主命名空间来查找控制器。在RC2中,我们可以从其他的命名空间来查找了。
意味着使用App.PostsController
来渲染posts
模板。现在我们还可以使用其他命名空间下的控制器来进行渲染。例如:
这里会使用Blog.PostsController
来渲染blog/posts
模板。
用多模型进行渲染
在RC1中,使用{{render 'posts'}}
表示利用App.PostsController
的实例来渲染posts
模板。这种方法总是使用同一个单例的控制器来渲染模板。
而在RC2中,可以使用一个特定的模型来渲染模板,例如{{render 'post' post}}
。如果我们使用render
渲染模板的时候指定了一个模型,那么Ember.js
会每次创建一个新的App.PostController
实例,而不是使用同一个。这样我们就可以在循环中使用{{render}}
。
打开ObjectController
的模型
将一个ObjectController
作为参数传递给action
和linkTo
时,Ember.js
现在支持将控制器的模型取出并传递给action
和linkTo
。最为重要的是,这使得我们可以在不影响控制器和路由的操作处理函数的同时,为{{#each}}
添加一个itemController
。
如果我们有一个这样的模板:
那么我们的App.PostsController
应该是这样的:
1 2 3 4 5 6 7 8 9 |
App.PostsController = Ember.ArrayController.extend({ needs: 'currentPost', selectPost: function(post) { // `post` here is an `App.Post`, not an // `App.PostItemController` this.set('controllers.currentPost.model', post); } }); |
这使得使用itemController
减少了问题的出现。
博客评论基于Disqus