Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
2811 Visualizzazioni

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?


Avatar
Abbandona
Risposta migliore

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

Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
5
mar 25
2906
1
feb 25
1430
2
lug 25
461
1
mag 25
1249
0
mag 25
713