3

患者オブジェクトのモデルがあります

 App.Router.map (function () {
    this.resource('patients');
    this.resource('patient', {path: ':patient_id'}, function(){
         this.resource('dashboard', function() {
             this.route('summary');

         });

    });
});




   App.PatientRoute = Ember.Route.extend({
          model: function(params) {
            return App.Patient.find(params.patient_id);
          },
          setupController: function(){
              console.log("Menu Items:" + App.PatientMenuItem.find() );
              this.controllerFor('patient').set('menuItems', App.PatientMenuItem.find());

          }
        });


App.DashboardSummaryRoute = Ember.Route.extend({
    setupController: function(){

        this.controllerFor('dashboard.summary').set('content', this.controllerFor('patient').get('model'));

        this.controllerFor('dashboard.summary').getPatient();
    }

});


App.DashboardSummaryController = Ember.ObjectController.extend({

  getPatient:function(){
      console.log(this.content.get_allergies);
  }
});

App.PatientController = Ember.ObjectController.extend({
    menuItems:[],    

});


<script type="text/x-handlebars" data-template-name="dashboard/summary">
Summary{{this.content.get_allergies}}
</script>

上記では、DashboardSummaryControllerで同じget_allergiesにアクセスできませんが、ハンドルバーでアクセスできます。誰かが間違いを教えてくれますか?

前もって感謝します

4

1 に答える 1

3

これだけで問題が解決するかどうかはわかりませんが、プロパティにアクセスするときは常にget()メソッドとset()メソッドを使用してください。したがって、getPatient()メソッドでこれを試すことをお勧めします。

App.DashboardSummaryController = Ember.ObjectController.extend({

  getPatient:function(){
      console.log(this.get("content.get_allergies"));
  }
});

テンプレートが機能するのはなぜですか?あなたが持っているハンドルバー式は自動的に呼び出しに変換されます、私はあなたのコントローラーメソッドのために提案しました。

于 2013-03-04T10:49:26.637 に答える