【问题标题】:Trouble converting js to coffeescript无法将 js 转换为咖啡脚本
【发布时间】:2013-11-21 23:31:09
【问题描述】:

我正在尝试学习 ember.js(使用 coffeescript),但教程是用 js 编写的,我遇到了一些我不知道如何进入 coffeescript 的代码。

我很确定问题出在我包装 .property 的方式上,但不确定如何解决。感谢您的帮助!

js代码(来自http://emberjs.com/guides/getting-started/marking-a-model-as-complete-incomplete/):

Todos.TodoController = Ember.ObjectController.extend({
  isCompleted: function(key, value){
    var model = this.get('model');

    if (value === undefined) {
      return model.get('isCompleted');
    } else {
      model.set('isCompleted', value);
      model.save();
      return value;
    }
  }.property('model.isCompleted')
});

我的咖啡脚本出错(也来自 Js2coffee):

Todos.TodoController = Ember.ObjectController.extend(
    isCompleted: (key, value) ->
        model = @get("model")
        if value is `undefined`
            model.get "isCompleted"
        else
            model.set "isCompleted", value
            model.save()
            value
    .property("model.isCompleted")
)

【问题讨论】:

标签: ember.js coffeescript


【解决方案1】:

CoffeeScript 中的括号是可选的,除非您需要它们。

Todos.TodoController = Ember.ObjectController.extend(
    # add paren before function
    isCompleted: ((key, value) ->
        model = @get("model")
        if value is `undefined`
            model.get "isCompleted"
        else
            model.set "isCompleted", value
            model.save()
            value
    ).property("model.isCompleted")
)

【讨论】:

    猜你喜欢
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    相关资源
    最近更新 更多