我想将图像从对象数组存储到

时间:2019-03-14 09:55:04

标签: javascript html image vue.js html-table

我正在创建一个购物车,我想将所选产品的副本以及该产品的详细信息存储到购物车中。我可以访问和存储除图像之外的所有对象。这是即时通讯的示例。

//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 :(得分:0)

在初始渲染时,在vue.js甚至没有机会渲染您的代码之前,浏览器都会看到以下内容:

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

然后浏览器尝试加载{{item.image}}并失败,并显示 net :: ERR_FILE_NOT_FOUND
您需要使用新的attr语法(vue 1.0):

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

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

有关详细信息,请参见documentation