gpt4 book ai didi

javascript - coffeescript 1.7 破坏了我的 ember.js 计算属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:24:51 25 4
gpt4 key购买 nike

给定以下 CoffeeScript 。

App.Whatever = Em.ArrayController.extend
clean: Em.computed ->
@get('content').filterBy('clean', true)
.property 'content'

Coffeescript < 1.7 会正确输出:

App.Whatever = Em.ArrayController.extend({
clean: Ember.computed(function() {
return this.get('content').filterBy('clean', true);
}).property('content')
});

现在 Coffeescript 1.7 输出:

 App.Whatever = Em.ArrayController.extend({
clean: Ember.computed(function() {
return this.get('content').filterBy('clean', true);
})
}).property('content');

这似乎是一个外卖。我是否遗漏了什么或者我是否必须重写我所有的计算属性?

Example

最佳答案

我认为您将 coffeescript 用于链接属性的方式没有记录。我相信链接的官方方法是使用括号明确定义属性附加的位置...

App.Whatever = Em.ArrayController.extend
clean: Em.computed( ->
@get('content').filterBy('clean', true)
).property 'content'

或者,如果你真的想避免括号,你可以这样写

App.Whatever = Em.ArrayController.extend
clean:
Em.computed ->
@get('content').filterBy('clean', true)
.property 'content'

上面的两个例子都编译成

App.Whatever = Em.ArrayController.extend({
clean: Em.computed(function() {
return this.get('content').filterBy('clean', true);
}).property('content')
});

更新:CoffeeScript 1.7 新功能...

来自文档... Leading .现在关闭所有打开的调用,允许更简单的链接语法。

$ 'body'
.click (e) ->
$ '.box'
.fadeIn 'fast'
.addClass '.active'
.css 'background', 'white'

会输出...

$('body').click(function(e) {
return $('.box').fadeIn('fast').addClass('.active');
}).css('background', 'white');

关于javascript - coffeescript 1.7 破坏了我的 ember.js 计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21495333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com