gpt4 book ai didi

ember.js - 使用来自 ember 数据 findQuery 的结果作为 ArrayController contentBinding

转载 作者:行者123 更新时间:2023-12-02 06:06:09 25 4
gpt4 key购买 nike

我正在尝试编写我的第一个“真正的” ember 应用程序。我已经阅读了几个教程,现在我正在尝试将 ember 与 Ember Data 结合使用来从 Rails 应用程序中获取数据并显示它。

我已经得到它来获取数据,解析它并显示它,尽管我不相信它是最好的方式。我有一个 App.itemsController这类似于:

App.itemsController = Em.ArrayController.create({
content: App.store.findQuery(App.Item, {visible: true}),
});

我也有一个 App.ItemIndexView ,其模板看起来像
{{#each App.itemsController}}
{{id}}{{view App.ItemView item=this}}
{{/each}}

我对此有几个问题。

首先,我希望允许用户将项目可见性更改为 false。我在 App.ItemView 中有此代码文件:
acknowledge: function() {
this.item.set('visible', false);
App.store.commit();
}

记录得到更新,但是我希望整个项目从 View 中删除,但它没有。如何从 App.itemsController.content 中删除此记录?

我的第二个问题,实际上也可以回答第一个问题,就我的实现而言,我是否完全陷入困境?我觉得应该有一种方法可以让我设置类似 contentBinding: 'App.store.findQuery(App.Item, {visible: true})' 的东西并删除不可见的那些,但我已经尝试过,但没有任何显示。所以我想知道我整个应用程序设置的方式是否有缺陷,是否让事情变得很好。

最佳答案

您可以使用 filter函数代替 findQuery :

content: App.store.filter(App.Item, function (item) {
return item.get('visible');
})

当底层数据发生变化时,将重新评估结果。尽管如此,您仍然必须通过 find/findAll/findQuery 从服务器获取数据。

关于ember.js - 使用来自 ember 数据 findQuery 的结果作为 ArrayController contentBinding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805871/

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