我有这个
<template id="vButton">
<button v-bind:title="name">{{name}}</button>
</template>
<div id="app">
<ti-button></ti-button>
</div>
js
Vue.component('ti-button', {
props: ['name'],
template: '#vButton'
});
var vm2 = new Vue({
el: '#app',
data: {
name : 'hi'
}
});
我希望按钮具有innerText和title属性以说“ hi”。但事实并非如此。有人知道为什么吗?
参考:https://vuejs.org/v2/guide/components.html
谢谢
答案 0 :(得分:1)
Vue.component('ti-button', {
props: ['name'],
template: '#vButton'
});
var vm2 = new Vue({
el: '#app',
data: {
name: 'hi'
}
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script type="text/x-template" id="vButton">
<div>
<button>{{name}}</button>
<button>{{$root.name}}</button>
</div>
</script>
<div id="app">
<ti-button name="first_button"></ti-button>
</div>
答案 1 :(得分:0)
您所做的事情大部分都是正确的,您只需要使用v-bind
将数据传递给prop:
<ti-button v-bind:name="name"></ti-button>
可以不使用v-bind
传递静态值,但是对于像尝试传递那样的动态值,则需要绑定道具。 Check out the static/dynamic prop documentation以获得更多信息。
这是一个有效的演示:https://codepen.io/egerrard/pen/qJpzMQ