如何覆盖Ember数据中的peek方法?

时间:2017-03-10 05:25:05

标签: ember.js ember-data

我的应用程序具有在users.js模型中拥有用户(活动和已删除)的场景。

但早些时候它只有活跃的用户。所以,如果我将删除添加到同一个模型,那么它会影响我不需要删除用户的其他地方,这会导致我在很多地方进行更改。

所以,我想在ember-data中覆盖peekAll以从用户模型中获取所需的数据。

类似

App.ApplicationAdapter = DS.RESTAdapter.extend({
    peek: () {
        //...
    }
});

但是在ember-data docs中没有这样的东西。

有没有办法覆盖peekAll方法?

2 个答案:

答案 0 :(得分:2)

不要覆盖peekAll方法。我建议使用ImportError: No module named 'torchtext' 使用filterBy标记。

isDeleted

http://emberjs.com/api/data/classes/DS.Model.html#property_isDeleted

编辑:您可以将服务器返回的let users = this.get('store').peekAll('user'); activeUsers = users.filterBy('isDeleted',false); 键映射到模型中的其他名称。 为此,您需要通过运行isDeleted

user模型创建序列化程序

ember g serializer user

app/models/user.js

import DS from 'ember-data'; export default DS.Model.extend({ isDeletedFlag: DS.attr('string') });

app/serializers/user.js

https://guides.emberjs.com/v2.11.0/models/customizing-serializers/#toc_attribute-names

编辑:这个旋律只适合你。我不会向其他人推荐这个,因为这可能会在将来的升级中产生问题。 Ember-Twiddle覆盖peekAll方法并执行您需要的操作

答案 1 :(得分:0)

我建议kumkanillam说...但是要回答你的问题,你可以通过为你的用户模型创建一个适配器来覆盖peekAll方法

适配器/ users.js

public void OnClick(View V){
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
            intent.putExtra("id",ed1.getText().toString());
            startActivity(intent);
}