Состояние в v-for vue.js?

Я хотел бы избежать значения image в приведенном ниже коде .image является ключом для property. Как я могу это сделать ?

<tbody>
    <tr v-for="obj in data" :id="obj.id">
       <td v-for="property in obj">{{property}}</td>
    </tr>
</tbody>

person abu abu    schedule 18.12.2017    source источник
comment
Я не совсем понимаю, о чем вы спрашиваете. Что ты пытаешься сделать? Не делать td для любого объекта, на котором есть изображение?   -  person Matt    schedule 18.12.2017
comment
Спасибо @ HEATH3N за ответ. В {{property}} есть разные значения. Но мне бы не хотелось печатать значение свойства image.   -  person abu abu    schedule 18.12.2017
comment
Итак, property объект? Потому что то, как вы звоните property.image, предполагает, что это так.   -  person Matt    schedule 18.12.2017
comment
Нет, property - это значение. Я обновляю свой вопрос. Я не знаю, как это сделать, поэтому я звонил property.image. Спасибо   -  person abu abu    schedule 18.12.2017
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что на SO ожидается, что вы попытаетесь написать код самостоятельно. После дополнительных исследований, если у вас возникла проблема, вы можете опубликовать то, что вы пробовали < / b> с четким объяснением того, что не работает и предоставлением минимального, полного и проверяемого примера внутри самого вопроса.   -  person Rob    schedule 18.12.2017


Ответы (2)


Давайте посмотрим: v-for с объектом , v-for с v-if.

<td v-for="(value, property) in obj" v-if="property!='image'">
    {{value}}
</td>
person Ben    schedule 18.12.2017
comment
Спасибо @Ben за ваш ответ. Я пробовал вот так <td v-for="property in obj" v-if="!property.image">{{property}}</td>. Но это не работает. Спасибо - person abu abu; 18.12.2017
comment
также проверьте наличие vuejs.org/v2/guide/list .html # v-for-with-an-Object - person Ben; 18.12.2017
comment
Думаю, тебе стоит попробовать <td v-for="(value, property) in obj" v-if="property!='image'">{{value}}</td> - person Ben; 18.12.2017
comment
^ Это работает и намного лучше, чем мой беспорядочный ответ. - person Matt; 18.12.2017
comment
Обратите внимание, что не рекомендуется использовать v-if и v-for вместе. См. Подробности в руководстве по стилю. (vuejs.org/v2/guide/list.html # v-for-with-v-if) - person Thomas van Broekhoven; 18.11.2019

Принятый ответ является анти-шаблоном, потому что вы не должны смешивать v-for и v-if на одном узле в VueJs 2+, как указал Томас ван Брокховен. Вместо этого вы можете просто привязать фильтр к объекту. Вот пример использования стрелочной функции ES6, которая должна * работать.

  • Непроверенный синтаксис. Пишу на телефоне в постели.
<tbody>
    <tr v-for="obj in data" :id="obj.id">
       <td v-for="property in obj.filter(property => property !== 'image')">{{property}}</td>
    </tr>
</tbody>
person Hal    schedule 09.09.2020
comment
Это правильный ответ - person HarshMarshmallow; 01.12.2020
comment
eslint-plugin-vue, хотя ошибки, говорит 'v-for' directives require that attribute value. - person JOG; 03.05.2021