[英]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.