Ruby on rails 3 在不同的div ember.js上显示模型

Ruby on rails 3 在不同的div ember.js上显示模型,ruby-on-rails-3,ember.js,Ruby On Rails 3,Ember.js,在Ember.js中,显示模型属性的最佳方式是什么 假设我的模型是“products”,所以我有一个产品列表,当我单击该列表上的项目时,我希望在另一个div中显示详细信息,而不是覆盖该视图 我如何才能做到这一点,下面如果我的代码 <script type="text/x-handlebars"> {{ view App.ListReleasesView }} </script> <script type="text/x-handlebars

在Ember.js中,显示模型属性的最佳方式是什么

假设我的模型是“products”,所以我有一个产品列表,当我单击该列表上的项目时,我希望在另一个div中显示详细信息,而不是覆盖该视图

我如何才能做到这一点,下面如果我的代码

  <script type="text/x-handlebars">
    {{ view App.ListReleasesView }}
   </script>

   <script type="text/x-handlebars">
  {{ view App.ReleaseDataView }}
   </script>



App.ListReleasesView = Ember.View.extend({
  templateName:    'app/templates/releases/list',
  releasesBinding: 'App.releasesController',

  showNew: function() {
    this.set('isNewVisible', true);
  },

  hideNew: function() {
    this.set('isNewVisible', false);

  },

  refreshListing: function() {
    App.releasesController.findAll();
  }
});


App.selectedReleaseController = Ember.Object.create({
  release: null
});
发布模板:

<ul>
  {{#each releases}}
    {{view App.ShowReleaseView releaseBinding="this"}}
  {{/each}}

</ul>

 {{#if isNewVisible}}

        {{view App.NewReleaseView}}

  {{/if}}
<div class="commands">
  <a href="#" {{action "showNew"}}>New Release</a>
  <a href="#" {{action "refreshListing"}}>Refresh Listing</a>
</div>



   App.ShowReleaseView = Ember.View.extend({
  templateName: 'app/templates/releases/show',
  //classNames:   ['show-release'],
  classNameBindings: ['isSelected'],

//  tagName:      'tr',

  doubleClick: function() {
    // this.showEdit();
   // this.showRelease();
    var release = this.get("release");

    App.selectedReleaseController.set("release", release);
  },

  isSelected: function(){
    var selectedItem = App.selectedReleaseController.get("release");
    release = this.get("content");

    if (release === selectedItem) {return true; }

  }.property('App.selectedReleaseController.release')
{{#if App.selectedReleaseController.release}}

    {{view App.ReleaseDataView}}
 {{else}}

     {{release.name}}

  {{/if}}


App.ReleaseDataView = Ember.View.extend({
  templateName:    'app/templates/releases/releaseData',
  releaseBinding: 'App.selectedReleaseController.release',
 // classNames: ['release'],


});
  {{#if isSelected}}

  <div class="name">
  {{editable "release.name"}} {{editable "release.description"}}
  </div>

  {{/if}}
{{{#如果被选中}
{{可编辑的“release.name”}{{可编辑的“release.description”}
{{/if}

您需要一个简单的控制器,其任务是管理选择状态

App.selectedReleaseController = Ember.Object.create({
  content: null
});
然后您将拥有另一个视图,用于查看绑定到该控制器的详细信息

{{view App.ReleaseDetailsView releaseBinding="App.selectedReleaseController.content"}}

这是唯一的办法吗?我如何将内容附加到选择状态控制器?这不是唯一的方法,但根据问题中的细节,这似乎是正确的方法。我是否需要对“selectedReleaseController”的内容进行设置/获取?是的,如果希望观察者/绑定工作,则需要使用set/get。我无法让它工作,它只是用一个空格覆盖列表项