2017-06-06 20 views
2

我們將我們的angularJS web組件與jqxGrid進行了互操作。當用戶在單元格中編輯時,我們創建了一個自定義的typeahead編輯器(以角度編寫)。當編輯器被銷燬時,我注意到我的$ watches數組沒有返回到以前的值。如何清理剩餘的手錶

我創造了我的指令,一個新的isolateScope,我再編譯,然後附加到DOM元素所需要的編輯器時,JQX傳遞給我:

var scope = $rootScope.$new(true); var customEditor = $compile(directive)(scope);

我有什麼要爲了清理這些$手錶嗎?

回答

2

它可能要創建新的範圍通過

var scope = $rootScope.$new(true); 

不被jqxGrid一旦jqxGrid與編輯器完成被破壞。

要清理的手錶,你只需要確保呼叫到

scope.$destroy(); 

棘手的部分做是搞清楚何時執行摧毀通話;我相信jqxGrid應該會提高事件,例如beforeEditafterEdit您可以訂閱; $ destroy()調用的地方在afterEdit事件的事件處理程序中。

+1

這樣做!謝謝! – flyer