基本的Vue.js示例不起作用

时间:2017-12-20 17:37:11

标签: javascript data-binding vue.js

我有这个超级基本的起点:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>

    <link rel="stylesheet" type="text/css" href="Content/dictionary.css" />

    <script src="Scripts/kuroshiro.min.js"></script>
</head>
<body>
    <div id="searchResultsVue">
        <table>
            <tr v-for="r in results">
                {{ r.Result.ent_seq }}
            </tr>
        </table>
    </div>


    <script src="https://vuejs.org/js/vue.js"></script>
    <script>


        var searchResultsVue = new Vue({
            el: '#searchResultsVue',
            data: { results: [{ Result: { ent_seq: 'asd' } }] }
        });
    </script>
</body>
</html>

但我得到

  

[Vue warn]:属性或方法“r”未在实例上定义,但在渲染期间引用。通过初始化属性,确保此属性在数据选项或基于类的组件中是被动的。请参阅:https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties

我不明白

3 个答案:

答案 0 :(得分:1)

您需要修复标记。 tr需要td作为孩子才能正常工作。

<tr v-for="r in results">
  <td>{{ r.Result.ent_seq }}</td>
</tr>

答案 1 :(得分:1)

你必须在tr里面使用td标签。 表格行

似乎有些特别之处

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <div id="searchResultsVue">
        <table>
            <tr v-for="r in results">
                <td>{{ r.Result.ent_seq }}</td>
            </tr>
        </table>
    </div>


    <script src="https://vuejs.org/js/vue.js"></script>
    <script>
        var searchResultsVue = new Vue({
            el: '#searchResultsVue',
            data: { results: [{ Result: { ent_seq: 'asd' } }] }
        });
    </script>
</body>
</html>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

这是HTML宽松渲染实践的问题。当它为一个表构建Dom元素时,它期望某个结构,并且任何偏离该结构的东西都会被推到定义之外。

所以

    <table>
        <tr v-for="r in results">
            {{ r.Result.ent_seq }}
        </tr>
    </table>

这样的行为
    <table>
        <tr v-for="r in results">
        </tr>
    </table>
    {{ r.Result.ent_seq }}

然后错误是它在循环外看到对循环变量的调用。

As seen in this fiddle在代码周围添加一个表定义标记会阻止它被推送。