在使用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
答案 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
}