Вызов метода определения функции в coffeescript

Как бы вы перевели этот фрагмент javascript в coffeescript? В частности, я борюсь с тем, как вызывать .property() в определении функции.

MyApp.president = SC.Object.create({
  firstName: "Barack",
  lastName: "Obama",

  fullName: function() {
    return this.get('firstName') + ' ' + this.get('lastName');

    // Call this flag to mark the function as a property
  }.property('firstName', 'lastName')
});

Ответ 1

Я думаю, именно так вы должны его написать:

MyApp.president = SC.Object.create {
  firstName: "Barack",
  lastName: "Obama",
  fullName: (-> 
    return @get 'firstName' + ' ' + @get 'lastName'
    # Call this flag to mark the function as a property
  ).property('firstName', 'lastName')
}

проверить эту ссылку

Ответ 2

Существует несколько способов определения вычисленных свойств. Вот примеры каждого из них:

MyApp.president = Ember.Object.create
  firstName: "Barack"
  lastName: "Obama"
  fullName: (-> 
    @get 'firstName' + ' ' + @get 'lastName'
  ).property('firstName', 'lastName')

MyApp.president = Ember.Object.create
  firstName: "Barack"
  lastName: "Obama"
  fullName: Ember.computed(-> 
    @get 'firstName' + ' ' + @get 'lastName'
  ).property('firstName', 'lastName')

Ответ 3

При использовании Ember.computed вам не нужно вызывать .property(), чтобы вы могли также использовать эту форму:

MyApp.president = Ember.Object.create
  firstName: "Barack"
  lastName: "Obama"
  fullName: Ember.computed -> @get 'firstName' + ' ' + @get 'lastName'

Ответ 4

Что-то вроде этого будет работать?

 (() => this.get("firstName") * this.get("lastName")).property()