Ruby on rails 3 在不同的div ember.js上显示模型
在Ember.js中,显示模型属性的最佳方式是什么 假设我的模型是“products”,所以我有一个产品列表,当我单击该列表上的项目时,我希望在另一个div中显示详细信息,而不是覆盖该视图 我如何才能做到这一点,下面如果我的代码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
<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。我无法让它工作,它只是用一个空格覆盖列表项