简体   繁体   English

Ember.js:从具有belongsTo关系的模板中获取价值

[英]Ember.js: Getting value from templates having belongsTo relationship

I'm having problem with getting the value when creating new record having belongsTo relationship. 我在创建具有belongsTo关系的新记录时获取值时遇到问题。

// templates/components/user.hbs
First Name:
{{view Ember.TextField valueBinding="user.name.first" required="required"}}

Middle Name: 
{{view Ember.TextField valueBinding="user.name.middle" required="required"}}

Last Name:
{{view Ember.TextField valueBinding="user.name.last" required="required"}}


// models/user.js
export default DS.Model.extend({
    name: DS.belongsTo('name', {embedded: 'always'}),
});

// models/name.js
export default DS.Model.extend({
    first: DS.attr('string'),
    middle: DS.attr('string'),
    last: DS.attr('string')
});


// from my route
model: function() {
    return this.store.createRecord('user');
}

// create action
var user = this.controller.get('model');
console.log(user.get('name').get('first'));  // it says that the 'name' is null

But when I tried to edit the persisted data from the backend, value from 'name' can be accessed. 但是,当我尝试从后端编辑持久化数据时,可以访问“名称”中的值。

With the limited information available there are a few issues. 由于可用的信息有限,因此存在一些问题。 {embedded:'always'} has been deprecated for some time, and creating a user won't automatically create the name record. {embedded:'always'}已被弃用一段时间,创建user不会自动创建name记录。

model: function(){
  var store = this.store,
    name = store.createRecord('name'),
    user = store.createRecord('user', {name:name});

  return user;
}

You might want to read the transition document https://github.com/emberjs/data/blob/master/TRANSITION.md 您可能需要阅读过渡文档https://github.com/emberjs/data/blob/master/TRANSITION.md

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM