摘要:我今天的工作又遇到一個難題。前端右下角這個按鈕被設(shè)置為禁用狀態(tài)。這個按鈕的可用狀態(tài)由屬性控制。而行執(zhí)行之前,還沒有這個的屬性。我成功找到了我在尋找的給添加了的代碼位置。
我今天的工作又遇到一個難題。前端UI右下角這個按鈕被設(shè)置為"禁用(disabled)"狀態(tài)。
這個按鈕的可用狀態(tài)由屬性enabled控制。我通過調(diào)試發(fā)現(xiàn),一旦下圖第88行代碼執(zhí)行完畢之后,這個按鈕的屬性mProperties里就多出一個enabled:false的屬性。
而88行執(zhí)行之前,還沒有這個enabled:false的屬性。正是這個屬性讓按鈕進入了禁用狀態(tài)。
我單步調(diào)試setModel函數(shù),花了半個小時的時間也沒能找到這個enabled屬性到底是在哪一行代碼加進去的。
于是我只有尋求其他辦法。我想到了Object.defineProperty這個方法:
我在Chrome開發(fā)者工具里執(zhí)行如下代碼,首先根據(jù)button的ID用ui.byId方法找到這個被禁用按鈕的實例,然后用Object.defineProperty給按鈕實例的屬性集合mProperties注入一個get方法,實現(xiàn)體只有一個debugger語句。如此一來,每次button的mProperties被訪問時,都會自動觸發(fā)一個斷點。而mProperties屬性發(fā)生變化時,必定會先產(chǎn)生讀取動作,因此斷點停下來時,我通過觀察調(diào)用棧的上下文就能夠找到是哪一行代碼修改了mProperties。
var ui = sap.ui.getCore(); var button = ui.byId("button97DXvDVKUawkYgK3YQVram_64"); Object.defineProperty(button, "mProperties", { get: function(){ debugger;}});
現(xiàn)在就來試試。果然斷點自動觸發(fā)了。我成功找到了我在尋找的給mProperties添加了enabled = false的代碼位置。
要獲取更多Jerry的原創(chuàng)技術(shù)文章,請關(guān)注公眾號"汪子熙"或者掃描下面二維碼:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/98732.html
摘要:我今天的工作又遇到一個難題。前端右下角這個按鈕被設(shè)置為禁用狀態(tài)。這個按鈕的可用狀態(tài)由屬性控制。而行執(zhí)行之前,還沒有這個的屬性。我成功找到了我在尋找的給添加了的代碼位置。 我今天的工作又遇到一個難題。前端UI右下角這個按鈕被設(shè)置為禁用(disabled)狀態(tài)。 showImg(https://segmentfault.com/img/remote/1460000016811187); 這...
摘要:的使用對象是由多個名值對組成的無序的集合。目標(biāo)屬性所擁有的特性返回值傳入函數(shù)的對象。是一種獲得屬性值的方法是一種設(shè)置屬性值的方法。參考相關(guān)閱讀鏈接基礎(chǔ)篇中的可枚舉屬性與不可枚舉屬性以及擴展 Math.max 實現(xiàn)得到數(shù)組中最大的一項 var array = [1,2,3,4,5]; var max = Math.max.apply(null, array); console.log(m...
摘要:不管函數(shù)還是數(shù)據(jù),都可以稱為某某對象的屬性。一些細節(jié)輸出結(jié)果如下可以看出,函數(shù)是有的數(shù)據(jù)屬性是創(chuàng)建對象時定義的,所有屬性特性都是是用定義的,默認(rèn)為數(shù)據(jù)屬性,所有屬性特性默認(rèn)為。訪問器屬性暫時想到的,就是通過改變該屬性改變內(nèi)部多個屬性。 都知道js是面向?qū)ο蟮?,?chuàng)建了對象后,對象中保存的就是一組組名值對,值可以是數(shù)據(jù)類型或函數(shù)。不管函數(shù)還是數(shù)據(jù),都可以稱為某某對象的屬性。再細分,屬性可以...
閱讀 3789·2021-09-22 15:17
閱讀 1975·2021-09-22 14:59
閱讀 2377·2020-12-03 17:00
閱讀 3244·2019-08-30 15:55
閱讀 522·2019-08-30 11:23
閱讀 3520·2019-08-29 13:56
閱讀 546·2019-08-29 12:54
閱讀 2275·2019-08-29 12:49