2017-07-20 19 views
0

我有一個組件,它通過內聯模板中的PHP列出了6個圖像。當我點擊一個'加載更多'按鈕時,它會進行一次ajax調用,並接收更多要添加到圖像列表中的帖子。在內聯模板中用Vue在組件中添加新元素的正確方法

我該如何實現?我只是用JS附加了一個模板字符串,但現在我需要在這個圖像上添加一個事件監聽器,我不能只使用模板字符串。

謝謝!

+0

向我們展示您的嘗試。 – Ikbel

回答

1

我不知道我是否理解好結果應該是什麼,但從我的理解你有一個動作,它將從服務器端加載一些圖像,並且你想把它們附加到你的模板;我會嘗試起草一個解決方案,我想到的是什麼。

  • 首先你需要一個數組作爲持有人在您的視圖模型的圖像。
  • 你將不得不更新這個數組,當你按下更多的按鈕時添加新的元素。
  • 你必須循環訪問數組,在模板中使用v-for顯示圖像
  • 當數組將被更改時,它通常應更新模板。 (檢查documentation for this

模板

<template> 
    <div v-for"image in allImages"> 
    ... display your images here... 
    </div> 
</template> 

腳本

data: { 
    allImages: [] 
}, 
created() { 
    // this will do the php call and update your array before the component is shown. So, it will your default. 
    getMoreImages(); 
}, 
methods: { 
// Assuming this is a server call which receive a response with images... 
getMoreImages(response) { 
    var newImages = response.newImages; 
    this.allImages.push(newImages); 
} 
} 

我希望我理解你很好,這個答案會有所幫助。

更新:在這裏你有一個JS Fiddle example of what I mean請檢查新的小提琴。

+0

這幾乎是我需要的。這看起來像是正確的方法,我已經達到了類似的解決方案,但正如我所說的,我有默認圖像,當頁面加載時通過PHP獲取,這不像在你的例子中,你只有一個'v -for',它會根據數組加載圖像,我的圖像應該先從PHP加載,然後從這個數組中加載,這是正確的嗎?因爲看起來很奇怪,有兩個模板,一個在PHP中,另一個在使用'v-for',你明白我嗎? –

+1

您可以在創建的方法上獲取數據並將它們推送到數組,因此這將是您的默認圖像。然後使用與我的示例中相同的方法。我會更新答案 –

+0

是的,我知道我可以做到這一點,但是然後我的圖像將從JS加載,我希望它通過PHP加載文檔,這是整個問題的焦點。它看起來很奇怪,既有PHP和Vue圖像模板,但除了用Vue加載所有內容(這也是我使用內聯模板的原因)之外,我沒有看到採用其他方式進行此操作。 –

相關問題