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