gpt4 book ai didi

javascript - 更新侧边栏 View 内容的 Ember.js 最佳实践是什么?

转载 作者:行者123 更新时间:2023-11-28 09:24:38 25 4
gpt4 key购买 nike

我正在开发一个简单的应用程序。作为应用程序的一部分,有一个侧边栏显示较大集合的子集。主集合显示在右侧,并显示集合中的所有项目,其中侧边栏显示“已加星标”标志设置为 TRUE 的项目子集。

我有一个名为“Campaigns”的简单 Controller ,如下所示...

var App = require('app');

App.CampaignsIndexController = Em.ArrayController.extend({

});

模型看起来像这样......

var App = require('app');
var attr = DS.attr;

App.Campaign = DS.Model.extend({

name: DS.attr('string'),
starred: DS.attr('boolean')

});

对于这个例子来说,保持它的基本性。

我们的应用程序路由器映射如下...

var App = require('app');

App.Router.map(function() {

this.route('index', { path: '/'});

this.resource('campaigns', { path: '/campaigns'}, function() {

this.route('new', { path: '/new' });
this.route('campaign', { path: '/:campaign_id' });

});

});

主要应用程序模板如下所示。请注意侧边栏 View 是如何直接放置到模板中的。导出{{outlet page}}是上面的路由放置其内容的地方。在此示例中,路径 /campaigns 将显示 {{ Outlet page }} 中所有营销事件的列表。

<div id="app" class="">

<div id="sidebar" class="">

{{ view App.StarredCampaignsView }}

</div>

<div id="page" class="">

{{ outlet page }}

</div>

</div>

营销事件的路线将渲染连接到页面导出...

var App = require('app');

App.CampaignsCampaignRoute = Ember.Route.extend({

renderTemplate: function(controller, model) {

this.render({outlet: 'page'});

}

});

我的困境
绑定(bind)传递到

的内容的最佳实践是什么

{{ 查看 App.StarredCampaignsView }}

以便它反射(reflect)在

中看到的确切集合

{{ 导出页面 }}

奖励积分
将集合过滤为模型中看到的 bool 标志“加星标”的最佳实践是什么?

最佳答案

将其绑定(bind)到 Controller 内定义的计算属性

Controller

filteredValues: function(){
//returns all the records whose starred property is true
return this.get('campaigns').filterProperty("starred");
}.property('campaigns.@each.starred')

Handlebars

<div id="sidebar" class="">
{{#collection contentBinding="filteredValues"}}
<b>{{view.content.name}}</b>
{{/collection}}
</div>

关于javascript - 更新侧边栏 View 内容的 Ember.js 最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14553872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com