Vue.js无法使用模板正确呈现

时间:2017-02-10 18:27:07

标签: javascript vuejs2 vue-component vue.js

我正在与Vue.js和Django合作。我的目标是显示一个bin列表,我将通过REST API。

这是我的JavaScript代码:

Vue.component('bin-detail', {
template: '#bin-detail',
props: ['bin']
});

var app = new Vue({
    el: '#table',
    data: {
        message: "Hallo",
        bins: []
    },
    mounted: function() {
        $.get('/api/bins/', function (data) {
            app.bins = data.results;
        })
    },
    delimiters: ['<%', '%>']
});

我的HTML:

<div id="table">
    <h1><% message %></h1>
    <table class="table table-hover">
        <thead>
        <tr>
            <th>Name</th>
        </tr>
        </thead>
        <tbody>
            <tr v-for="bin in bins" is="bin-detail" :bin="bin"></tr>
        </tbody>
    </table>
</div>
<template id="bin-detail">
    <tr>
        <td>
            <% bin.name %>
        </td>
    </tr>
</template>

消息数据显示正确,但在收到GET请求后,名称在呈现的页面上保留“&lt;%bin.name%&gt;。使用Vue-Inspector我可以看到,该组件已被生成正确但模板没有更新: enter image description here 任何人都有想法,我正在做什么呢?

1 个答案:

答案 0 :(得分:4)

这是因为在VueJS中,每个组件定义了2个分隔符,所以你必须在组件中定义它们:

Vue.component('bin-detail', {
    delimiters: ['<%', '%>'],
    template: '#bin-detail',
    props: ['bin']
});