2017-08-25 7 views
0

私のプロジェクトは現在VueJSで作られています。さて、入力データで特定のテンプレートを処理し、その結果を保存して電子メールを送信する必要があります(たとえば)。VueJsを使ってテンプレートを保存する

テンプレートをユーザーデータでレンダリングして保存できますか?どうやって?

私たちは、私がSSRについて読んだことがあるVueJS

を行うことができない場合を除き、この目的のために別のライブラリを使用したくありません。しかし、私はサーバー側のレンダリングを使用したくありません。アイデアは特定のメッセージをレンダリングするだけです。このような振る舞いに続き:

save: function(){ 
    userNote.user = ... 
    userNote.message = document.getElementById('message').innerHtml; 
    saveToServer(userNote); 
} 

メッセージテンプレート:

<div id="message"> Dear {{user.name}}, please confirm that {{notes}} before {{date}}</div> 

私は私が私が理解して作ら願っています。 ありがとうございます。

var templateComponent = Vue.component("template-component", { 
 
    template: "<p>Hello {{name}}</p>", 
 
    props: ["name"], 
 
    methods: { 
 
    exportHTML: function() { 
 
     return this.$el.outerHTML; 
 
    } 
 
    } 
 
}); 
 

 
var app = new Vue({ 
 
    el: '#app', 
 
    data: { 
 
    name: "David", 
 
    html: undefined 
 
    }, 
 
    methods: { 
 
    getHTML: function() { 
 
     this.html = this.$refs.template.exportHTML(); 
 
    } 
 
    } 
 
});
<script src="https://unpkg.com/[email protected]/dist/vue.min.js"></script> 
 
<div id="app"> 
 
    <div style="display: none"> 
 
     <template-component :name="name" ref="template"></template-component> 
 
    </div> 
 

 
    <label>Name 
 
     <input v-model="name"> 
 
    </label> 
 

 
    <button @click="getHTML">Get html</button> 
 

 
    <pre>{{ html }}</pre> 
 
</div>

次に、あなただけのHTMLを取得するためのテンプレート・コンポーネントにexportHTMLメソッドを呼び出す必要があります:あなたのテンプレートがコンポーネントに格納され、エクスポートメソッドを追加したと仮定すると

+0

[Vue.jsテンプレートを静的なHTMLファイルとCSSファイルにコンパイルすることはできますか?](https://stackoverflow.com/questions/42857376/is-it-possible-to-compile-vue-js)静的HTMLとCSSファイル) – thanksd

+0

@thanksdあなたが言及した質問は非常によく似ていますが、私が望むものではありません。私は詳細を追加します。 –

答えて

0

+0

この例ではこれが機能します。私は子供の要素の位置を知っている必要があります。私は他の子供を追加する場合、私はそれを置く場所に注意するかもしれません。 –

+0

テンプレートにアクセスするための私の答えを少し改善しました。 –