Вызов метода для определения функции в coffeescript - PullRequest
10 голосов
/ 11 декабря 2011

Как бы вы перевели этот фрагмент 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')
});

Ответы [ 4 ]

21 голосов
/ 11 декабря 2011

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

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')
}

оформить заказ по этой ссылке

5 голосов
/ 15 декабря 2011

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

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')
2 голосов
/ 21 декабря 2011

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

MyApp.president = Ember.Object.create
  firstName: "Barack"
  lastName: "Obama"
  fullName: Ember.computed -> @get 'firstName' + ' ' + @get 'lastName'
0 голосов
/ 11 декабря 2011

Как то так будет работать?

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