Как разобрать / отобразить HTML-строку с Dojo 1.10? - PullRequest
0 голосов
/ 29 ноября 2018

Допустим, у меня есть следующее:

const props = {
    buttonText : 'Click Me'
}

const htmlString = "<button>${buttonText}</button>"

dojo.someFunction(htmlString, props);

Что будет dojo эквивалентом модуля "someFunction"?

Я понимаю, что это можно сделать с помощью templateMixins, но я не хочу расширять / создавать виджеты, только заимствовать функцию синтаксического анализа.

1 Ответ

0 голосов
/ 30 ноября 2018

Все, что вам нужно сделать, это использовать функцию dojo / string -> replace * , которая используется в шаблонах dojo Dijit.

См. Ниже рабочий фрагмент:

require(["dojo/string", "dojo/dom","dojo/ready"], function(string, dom , ready) {

  const props = {
    buttonText: 'Click Me'
  }

  const htmlString = "<button>${buttonText}</button>"
  
  var newString = string.substitute(htmlString, props);
  console.log(newString);
  alert("String after substute : \n"+ newString);
  dom.byId("btn").innerHTML = newString ;
  
});
<script type="text/javascript">
  dojoConfig = {
    isDebug: true,
    async: true,
    parseOnLoad: true
  }
</script>

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" rel="stylesheet" />

<div id="btn"></div>
...