2017-07-03 19 views
1

外部から 'メソッド'内の関数を呼び出そうとしています。しかし、それは動作していません。同じことを報告'export default'外のコンポーネント内でVueJSメソッドを呼び出す

Githubの問題:あなたが達成しようとしている何https://github.com/vuejs/vue/issues/329

vm.test(); // call a function in method, not working 
this.vue.test() // not working 
export default { 
    methods: { 
    test: function() { 
     alert('test fuction called'); 
    } 
    } 
} 
+0

受け入れてコメントをマークすることを忘れないでください。 – Daryn

答えて

2

が根本的に欠陥があります。特定のコンポーネントのインスタンスへの参照がない限り、そのコンポーネントのメソッドを呼び出すことはできません。あなたのコードでは、特にの成分はvmを指していますか?

モジュールからVueコンポーネント定義をエクスポートするだけです。ここにインスタンス化されているコンポーネントはありません。

私たちはあなたのコードの詳細や、あなたが達成しようとしていることの完全な説明を見る必要があります。これにより、代替ソリューションを提供することができます。 (なぜ定義外のコンポーネントのメソッドを呼び出そうとしているのですか?)

+0

コンポーネントをVMとしてエクスポートするにはどうすればよいですか? –

+0

このコンポーネントはシングルトンを意味しますか? –

+0

私はいくつかのコンポーネントを持っています。各コンポーネントは、私が入れたページのようなものです

1

オリジナルのポスターの実際の目標はどういうものかはっきりしませんが、これはVueインスタンス上でメソッドを呼び出す方法ですそれを作成:

var viewModel = new Vue({ 
    el: "#app", 
    data: { 
    msg: "Hello there" 
    }, 
    methods: { 
    test: function() { 
     alert('test fuction called'); 
    } 
    } 
}); 

viewModel.test(); 

の作業例は:あなたは、単一のファイル・コンポーネントをエクスポートする場合https://jsfiddle.net/Daryn/Lja7pake/3/

これを試してみてください。

example.js

<script> 
    export default { 
    methods: { 
     test: function() { 
     alert('test fuction called'); 
    } 
    } 
    } 
</script> 

main.js

<script> 
    import Thing from './example.js'; 
    Thing.test(); 
</script> 

参考:https://vuejs.org/v2/guide/single-file-components.html

+0

それは良い見えます。それにほぼ近い。これはvueの別のコンポーネントです。 'new Vue ....'のようなものはありません。 'export default .....'から始まります。 –

+0

私は答えを更新しました。私は外出しているので、これが動作することを確認する時間がありませんでしたが、試してみる... – Daryn

関連する問題