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