콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
2726 화면

how to parse the html code in frontend which is returned from backend?

I wirte very simple code to describe this, 

BACKEND:

# python backend return html code to frontend
def demoFunc():
# module name: simple.demo
# business logic codes
return {'div': "
hello world
"}


Frontend JS:

class SimpleDemo extends Components {
setup(){
...
this.state = useState({ htmlcode: 'default'});
onMounted(async () = > {
await this.orm.call('simple.demo', 'demoFunc', ['']).then((val)= > {
this.state.htmlcode = val;
});
});
}
}


Frontend template:

[templates xml:space="preserve">

    [t t-name="simpledemo.template">

        [t t-esc="state.htmlcode.div" />

    [/t>

[/templates>


(forum editor automatically parse above code so I replaced

problem: 

in template: 

[t t-esc="state.htmlcode.div" />



the raw htmlcode is directly displayed in web page :

[div class='demo'>hello world[/div>

, acutally I want to have it parse this div sentence with class "demo", and display:

"hello world"

 how to parse the html code in front end?


아바타
취소
베스트 답변

Hi,

You should return the html code like this from the backend 

Hello World!


And in the front end

await this.orm.call('simple.demo', 'demoFunc', ['']).then((val)= > {
                        this.state.htmlcode = owl.markup(val);
                });

And in the xml you may need to use t-out instead of t-esc but if it work then it's good to go


Hope it helps

아바타
취소
관련 게시물 답글 화면 활동
5
3월 25
2803
1
2월 25
1331
2
7월 25
343
1
5월 25
1082
0
5월 25
656