跳至内容
菜单
此问题已终结
1 回复
6246 查看

I want to modify the DOM of the newly rendered view by jquery and extending the kanbanRenderer. However, some field widget is always rendered after my jquery function ( I have already tried to override different function, such as start, _renderview and etc), I guess it is something related to async feature of the javascript.

I wonder if there is a function called when the view rendering is just finished. Such that jquery can select any element of the finally DOM you can see on the browser. Below is some code within the my extension of kanbanRenderer, it is just not working.

let myKanbanRenderer1 = KanbanRenderer.extend({
start: function () {
return this._super().always(function(){
console.log($("span"))
})
}
})
形象
丢弃
编写者

Thank you so much for you help !!

最佳答案

because the view is still detached from DOM so you could not access
you are right you can access an element from DOM after the start method executed but it's for Widget not for ViewRenderer.
ViewRenderer's lifecycle is different from Widget it handle by the action manager and view controller. 

Anyway, here If you want to access nodes of a renderer even it's still not attached to DOM. this.$el has a reference of it

let myKanbanRenderer1 = KanbanRenderer.extend({
    start: function () {
        var self = this;
        return this._super().always(function(){
            console.log(self.$('span'), self.$el)
        })
    }
})

 

形象
丢弃
相关帖文 回复 查看 活动
1
11月 22
3694
0
7月 25
395
1
7月 25
5273
0
7月 25
821
0
6月 25
840