2017-09-27 11 views
0

は、私は私の.vueファイルに次のコードを持っている:vuejsインスタンス - <script>タグの外側に<template>マークアップを付けることはできますか?

<template> 
    <p>hello search</p> 
</template> 

<script> 
import Vue from 'vue'; 
var vm = new Vue({ 
    el: '#js-quick-search' 
}) 
</script> 

を、私の.htmlの中で私は、Vueのインスタンスの要素

<div id="js-quick-search"></div> 

しかし、テンプレートの一部が完全に無視されています。スクリプトタグ内に追加することなくインスタンスにどのようにアタッチできますか?

<script> 
import Vue from 'vue'; 
var vm = new Vue({ 
    el: '#js-quick-search', 
    template: '<p>whatever</p>' 
}) 
</script> 

が、スクリプト内のハードコードテンプレートなし:

基本的に私はこのように同じことを達成したいです。

+0

あなたは 'el'と' template'の両方を使用しません。そのテンプレートを内容にするには、元の 'el'で使用する必要があるコンポーネントのテンプレートでなければなりません。あるいは 'el'を使わないでください。あなたの望む結果が何であるかまだ明確ではありません。 –

+0

こんにちはロイ、ちょうどコンポーネントの作成の面倒なく、HTMLの一部を制御しようとしています。私は専用のvueインスタンスで逃げることができると思った。また、htmlがvueコンストラクタに、templateというプロパティとしてハードコードされている場合に機能します。しかし、あなたはvueコンポーネントでそれを持つことができるように、javascriptの外にマークアップを持つ方が良いでしょう。とにかく私はちょうどvuejsで始まったので、私のアプローチは完全に間違っている可能性があります。あなたはelとテンプレートを使用するべきではないと言及していますか? – Andrei

答えて

0

scriptタグ内のマークアップが間違っています。テンプレートを作成するには、そのように、scriptをエクスポートする必要があるだろう:

<template> 
    <div class="MyTemplate"> 
    Your template 
    </div> 
</template> 
<script> 
export default { 
    name: "MyTemplate" 
} 
</script> 

、テンプレートを使用するには、ちょうどそのようにそれを置くこと(import MyTemplate from './MyTemplate.vue')をインポートして、コンポーネント(components: { MyTemplate })に追加<myTemplate>

+0

おそらく私の質問が十分にはっきりしていなかったと思います。 – Andrei

関連する問題