Я хочу сохранить изображение из массива объектов в <td> - PullRequest
1 голос
/ 14 марта 2019

Я создаю корзину для покупок и хочу сохранить копию выбранного товара в корзину вместе с подробной информацией об этом товаре.Я могу получить доступ и сохранить все объекты, кроме изображения.Вот пример того, что я делаю.

//Js used to create a list of products
 const products = [
{ id: 1, title: 'Product_1', price: 250.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 2, title: 'Product_2', price: 300.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 3, title: 'Product_3', price: 350.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 4, title: 'Product_4', price: 270.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 5, title: 'Product_1', price: 250.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 6, title: 'Product_2', price: 300.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 7, title: 'Product_3', price: 350.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 8, title: 'Product_4', price: 270.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 9, title: 'Product_1', price: 250.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 10, title: 'Product_2', price: 300.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 11, title: 'Product_3', price: 350.00, qty: 1, image: 'images/iphone.jpg' },
{ id: 12, title: 'Product_4', price: 270.00, qty: 1, image: 'images/iphone.jpg' }];



//Html code used to make the table of the shopping cart
                     <table class="table table-cart">
                        <tr v-for="(item, index) in items">
                        <td><img src={{item.image}}></img></td>
                           <td>{{item.title}} </td>

                           <td style="width:120px">QTY:
                              <input v-model="item.qty" class="form-control input-qty" type="number">
                           </td>
                           <td class="text-right">€{{item.price | formatCurrency}}</td>
                           <td>
                              <button @click="removeItem(index)"><span class="glyphicon glyphicon-trash"></span></button>
                           </td>
                        </tr>
                        <tr v-show="items.length === 0">
                           <td colspan="4" class="text-center">Cart is empty</td>
                        </tr>
                        <tr v-show="items.length > 0">
                           <td></td>
                           <td class="text-right">Cart Total</td>
                           <td class="text-right">€{{Total | formatCurrency}}</td>
                           <td></td>
                        </tr>
                     </table>

, когда я пытаюсь <td><img src={{item.image}}></img></td>, я получаю окно, в котором должно быть изображение, но похоже, что изображение не может быть загружено.это ошибка на консоли

Web_tests/%7B%7Bitem.image%7D%7D net::ERR_FILE_NOT_FOUND

, и если я попытаюсь <td> {{item.image}}</td>, она напечатает адрес изображения (images / iphone.jpg)

1 Ответ

0 голосов
/ 14 марта 2019

При первоначальном рендеринге, прежде чем vue.js сможет даже отрендерить ваш код, браузер видит это:

<img src="{{item.image}}"></img>

Затем браузер пытается загрузить {{item.image}} и завершается с ошибкой net :: ERR_FILE_NOT_FOUND .
Вам необходимо использовать новый синтаксис attr (версия 1.0):

<!-- verbose -->
<img v-bind:src="item.image" />

<!-- shorthand -->
<img :src="item.image" />

Подробнее см. В документации .

...