簡體   English   中英

從對象獲取函數名稱或函數的某些唯一ID

[英]get function name or some unique id of function from object

window.VO = {}; 
window.viewObjects = function (viewName, view) {
    if (viewName in VO)
    {
        console.log('unbinding');
        VO[viewName].undelegateEvents();
    }
    VO[viewName] = view;
    return view;
};

我編寫了上面的函數來處理同一視圖的多次渲染。

但是現在我需要為每個視圖傳遞一個唯一的名稱。

window.viewObjects('BooksIndex', new Views.Dashboard.Books.Index()); 

有沒有辦法可以避免使用參數viewName?

從視圖對象獲取函數名稱的任何方法。

但是另一個問題是當我們有類似

Dashboard.Books.index()
Dashboard.Stores.index()

所有“骨干網”視圖都有一個唯一的cid (客戶端ID)。 您可以使用此ID來標識視圖,而不必分配其他名稱。

像這樣:

window.VO = {}; 
window.viewObjects = function (view) {
    if (view.cid in VO)
    {
        console.log('unbinding');
        VO[view.cid].undelegateEvents();
    }
    VO[view.cid] = view;
    return view;
};

骨干帶注釋的代碼中提取的相關部分,其中在創建視圖時設置了新的唯一cid

var View = Backbone.View = function(options) {
    this.cid = _.uniqueId('view');
    options || (options = {});
    _.extend(this, _.pick(options, viewOptions));
    this._ensureElement();
    this.initialize.apply(this, arguments);
  };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM