vue.js我在'v-for'语句中使用'v-once',为什么找不到'item'?

时间:2016-12-29 07:47:49

标签: javascript vue.js

<div v-for="item in imControls.messages" >
    <p v-once>
        <span class="" v-if="item.type==3">{{item.name}}:</span>
        <span class="red" v-if="item.type==4">{{item.name}}:</span>
        <span class="blue" v-if="item.type==2">{{item.name}}:</span>
        <span class="grey" v-if="item.type==1">{{item.name}}:</span>
        <span v-html="item.text"></span>
    </p>
 </div>

imControls.messages存在,如果我在v-once标签上不使用p,则没关系,但如果我使用v-once,则无法找到项目。

错误是

  

'vue.js:2574 [Vue warn]:属性或方法“item”未在实例上定义,但在渲染期间引用。确保在数据选项中声明反应数据属性。 (在根实例中找到)

     

vue.js:2217 Uncaught TypeError:无法读取未定义的属性'type''

2 个答案:

答案 0 :(得分:0)

v-once指令可直接用于v-for

<div v-for="item in imControls.messages" v-once>
    <span class="" v-if="item.type==3">{{item.name}}:</span>
    <span class="red" v-if="item.type==4">{{item.name}}:</span>
    <span class="blue" v-if="item.type==2">{{item.name}}:</span>
    <span class="grey" v-if="item.type==1">{{item.name}}:</span>
    <span v-html="item.text"></span>
</div>

答案 1 :(得分:0)

在v-for语句中不需要v-once,因为它已在vue.js 2.0.8中修复

4247修复v-html重置内容,即使内容字符串保持不变