vueで単純なアプリケーションを作成しようとしていますが、エラーが発生しています。私onScroll機能が期待通りに動作しますが、私は「のsayHello」がインスタンスで定義されていないが、 は、レンダリング時に参照され、私のボタンコンポーネントインスタンスではvueが定義されていませんが、レンダリング中に参照されます
プロパティまたはメソッドをクリックしたときに、私のsayHello関数はエラーを返します。データオプションに無効なデータ プロパティを宣言してください。 (コンポーネントで見つかった)
Vue.component('test-item', {
template: '<div><button v-on:click="sayHello()">Hello</button></div>'
});
var app = new Vue({
el: '#app',
data: {
header: {
brightness: 100
}
},
methods: {
sayHello: function() {
console.log('Hello');
},
onScroll: function() {
this.header.brightness = (100 - this.$el.scrollTop/8);
}
}
});
答えは本当に明白ですが、私が探して試してみた、何が出ていないような気がします。どんな助けもありがとう。
ありがとうございました。
'sayHello'は' test-item'のメソッドではありません。これは 'app'のメソッドです。 – ceejayoz
ありがとう@ceejayoz、それはそれをしました。 私はここでそれを読んだ:https://vuejs.org/guide/components.html各コンポーネントは、独自の隔離されたスコープに含まれています。 私のコンポーネントは、私がルートVueインスタンスに与えるメソッドを継承しませんか? –
Gotcha。 非常に興味深い、もう一度ありがとう。私はあなたの答えを正しいものとしてマークします、歓声。 –