繁体   English   中英

Ember-data DS.Model中的私有变量

[英]Private variables in Ember-data DS.Model

我想在每个DS.Model上存储一个私有变量。 它的目的是存储一个挂起的回调(以防我想取消它)。

我已经尝试过了(并且有效):

DS.Model.reopen({
  init() {
    let _pending; // my private var

    this._getPending = () => _pending;                   // get private var
    this._setPending = callback => _pending = callback;  // set private var

    this._super(...arguments);
  }
});

我已将其放置在initializer ,并且它按预期运行。

我的问题是:这是一个好习惯吗? 可能会搞砸什么吗? ...还有更好的方法吗?

就个人而言,我对它的工作方式感到满意。但是我不确定它是否为“灰烬”方式。 这将进入Ember-cli插件,因此我希望它是最“最佳实践”。 _getPending / _setPending方法只能在插件内部使用。)

这是我的2美分。 我会说这不是一个好习惯,但是应该没关系,因为它们只是Ember Objects。 这里的问题是Ember数据模型用于什么? 从文档说:

“模型是代表您的应用程序提供给用户的基础数据的对象。”

根据定义,这并不是它们的设计目的,仅因为您能够做到,并不意味着您应该像这样使用它们。

等待回调,以便可以取消? Ember模型API定义了可用于此目的的状态对象。 http://emberjs.com/api/data/classes/DS.Model.html诸如isDeleted,isValid,isNew等标志提供了所有可能的状态。

我会将它们放在路由器操作中,通过集成测试轻松对其进行测试。

您可以查看此说明他们的截屏视频:

https://www.emberscreencasts.com/posts/102-ember-data-20-model-states-and-flags

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM