簡體   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