0

基本的にlaravel 4を使用してmysqlデータベースから2つのテーブルがあるember-dataを使用してember.jsアプリを作成しようとしています。ここで、最初のテーブルの 1 つの列は、別のテーブルのエントリへの外部キーです。チュートリアルを閲覧していたところ、ember データでこの関数を見つけました。

DS.belongsTo

私はこれを次のように使用しました:

App.Leader = DS.Model.extend({
  name_en: DS.attr('string'),
  name_ne: DS.attr('string'),
  photo: DS.attr('string'),
  education: DS.attr('string'),
  contact: DS.attr('string'),
  address: DS.attr('string'),
  age: DS.attr('string'),
  party: DS.belongsTo('party'),
  history: DS.attr('string')
});

App.Party = DS.Model.extend({
 name: DS.attr('string'),
 logo: DS.attr('string'),
 headquarter: DS.attr('string'),
 president: DS.attr('string'),
 established: DS.attr('string'),
 philosophy: DS.attr('string')
});

ここでリーダー モデルでは、パーティー列にはパーティー モデルの ID 番号のみが含まれているため、これら 2 つのモデルを何らかの形で関連付けて、リーダーのパーティーで提供される ID または整数を使用して、パーティー モデルからその特定のレコードをフェッチできます。モデル。

私のルートコードは次のようなものです:

App.LeadersRoute = Ember.Route.extend({
model: function(){
    NProgress.start();
    var data = this.store.find('leader');
    data.then(function(value){
        NProgress.done();
    });
    return data;
}
});

App.LeaderRoute = Ember.Route.extend({
model: function(params){
    NProgress.start();
    var data = this.store.find('leader', params.leaders_id);
    data.then(function(value){
        NProgress.done();
    });
    return data;
}
});

App.PartiesRoute = Ember.Route.extend({
model: function(){
    NProgress.start();
    var data = this.store.find('party');
    data.then(function(value){
        NProgress.done();
    });
    return data;
}
});

App.PartyRoute = Ember.Route.extend({
model: function(params){
    NProgress.start();
    var data = this.store.find('party', params.parties_id);
    data.then(function(value){
        NProgress.done();
    });
    return data;
}
});

私が達成したいのは、新しいリーダー レコードを作成するときに、現在のすべてのパーティー レコードのリストを表示する選択入力が必要であり、そのうちの 1 つを選択することです。ユーザーがリーダーを作成すると、パーティー列の下に対応する ID を配置する必要があります。パーティーモデルの下でその特定のレコード。

また、ユーザーが特定のリーダー レコードを参照する場合、リーダー モデルのパーティー列で提供された ID を使用して、パーティー モデルからパーティー名を取得する必要もあります。

これらは私の現在のコントローラーです:

App.LeadersController = Ember.ArrayController.extend({
isNew: false,
actions: {
    newRecord: function(){
        this.set('isNew', true);
    },
    create: function(){
        //create code
    },
    cancel: function(){
        this.set('isNew', false);
    }
},
});

App.LeaderController = Ember.ObjectController.extend({
isEditing: false,
actions: {
    edit: function(){
        this.set('isEditing', true);
    },

    doneEditing: function(params){
        this.set('isEditing', false);
    },
    delete: function(params){
        //delete code           
    }
}
});

App.PartiesController = Ember.ArrayController.extend({
file_name: null,
isNew: false,
actions: {
    newRecord: function(){
        this.set('isNew', true);
    },
    create: function(){
        //create code
    },
    cancel: function(){
        this.set('isNew', false);
    }
},
});

App.PartyController = Ember.ObjectController.extend({
isEditing: false,
actions: {
    edit: function(){
        this.set('isEditing', true);
    },

    doneEditing: function(params){
        this.set('isEditing', false);
    },
    delete: function(params){
        //delete code
    }
}
});

リーダーのテンプレート内のパーティ モデルからレコードを取得するにはどうすればよいですか?

4

1 に答える 1