Ember.js:如何在Javascript代码

时间:2016-09-12 19:45:59

标签: javascript ember.js ember-data

在使用ember-data时的Ember.js中,我可以在.hbs模板中访问此类型号的属性:

{{#each model as |person|}}
    Welcome, {{person.firstName}} {{person.lastName}}!
{{/each}}

我尝试使用以下方法在Javascript代码中访问这些值(无论是在控制器或组件内):

// Method 1
if (person.firstName === 'Jack') {
    // Do something when the first name is Jack
}

// Method 2
if (person.get('firstName') === 'Jack') {
    // Do something when the first name is Jack
}

但这些都无法获得当前模型的任何属性。我可以通过这种方式获得的唯一值是当前模型实例的id

我已经远远地看了解这个问题并找不到任何问题,所以我问这个问题:

使用Ember.js和ember-data时,是否可以在Javascript代码中访问模型实例的属性?如果是这样,怎么办呢?如果没有,为什么我不这样做?

作为参考,这是我目前的Ember.js设置:

DEBUG: Ember             : 2.5.1
DEBUG: Ember Data        : 2.5.3
DEBUG: jQuery            : 2.2.4
DEBUG: Ember Simple Auth : 1.1.0

1 个答案:

答案 0 :(得分:1)

如果您有一个要传递给组件的对象,它将成为该组件的属性。因此,在访问模型对象本身的任何属性之前,需要通过组件的属性获取该对象。

假设您将对象传递到这样的组件中:

{{person-profile person=person}}

其中任何一个都应该有效:

// Method 3
if (this.get('person').get('firstName') === 'Jack') {
  // Do something when the first name is Jack
}

// Method 4
if (this.get('person.firstName') === 'Jack') {
  // Do something when the first name is Jack
}