0

私は Riot.js を初めて使用し、オブジェクトから html 要素を作成する際に問題があります。私はこのような構造を持っています:

var self = this;

self.objects = [
  { tag: "h1", text: "hello" },
  { tag: "h2", text: "world" }
];

そして、ブラウザでこのようなものを取得したい

<h1>hello</h1>
<h2>world</h2>

これは私が持っているものです

<virtual each={objects}><{ tag }> { text } <&#47;{ tag }></virtual>

そしてそれは私に与えます

"<h1>hello<h1>"
"<h2>world<h2>"

"引用符を削除するにはどうすればよいですか? または、文字列ではなく実際の HTML タグをページに表示するようにコードを改善するにはどうすればよいですか?

4

1 に答える 1

2

http://riotjs.com/guide/#render-unescaped-html

Riot 式は、HTML フォーマットなしでテキスト値のみをレンダリングできます。ただし、ジョブを実行するカスタム タグを作成できます。

カスタムrawタグを作成します。

<raw>
  <script>
    this.root.innerHTML = opts.content
  </script>
</raw>

それを使用してhtmlをレンダリングします。

<raw content="{'<' + tag + '>' + text + '</' + tag + '>'}" each="{ objects }" />

<script>
  this.objects = [
    { tag: 'h1', text: 'hello' },
    { tag: 'h2', text: 'world' }
  ];
</script>

タグと組み合わせrawを使用して、ラッピング タグを取り除くことができます。virtualdata-is

<virtual data-is="raw" content="{'<' + tag + '>' + text + '</' + tag + '>'}" each="{ objects }" />

実際の例: http://plnkr.co/edit/ZQxJNfqvdSvWpMk8z0ej?p=preview

于 2016-05-11T18:29:04.120 に答える