2017-07-26 54 views
0

我正在從AngularJS 1.x移動一個站點,它嚴重依賴於$ compile服務(Angular 2.x中不再提供此服務)。在應用程序中,我有一個指令看起來是這樣的<myDir elemId="someRestEndPointID"></myDir> 並執行以下操作:在Vue.js中渲染自定義嵌套的html

1)HTTP調用時,響應返回一個包含指令<myDir elemId="someRestEndPointID"></myDir>

2)調用向服務器發出用於/ someRestEndPointID字符串

3)Angular獲取內容並呈現和看起來另外<myDir>標籤

4)重複上述過程(遞歸)

我還沒有發現的東西,這是否對我們的新框架Vue.js.是否有類似的功能或庫可以在Vue.js中實現此邏輯?

回答

0

這似乎是一個複雜的工作方式,我不會遵循這種模式。爲什麼不創建一個組件,將端點作爲屬性<your-component endpoint="https://example.org/"></your-component>,然後組件將在create方法中執行呼叫?

<template> 
    <div> 
    <img src="loading.jpg" v-show="loading" /> 
    <!-- Content here --> 
    {{content}} 
    </div> 
</template> 

<script> 

    export default { 
    props: ['endpoint'], 
    data() { 
    return { 
     loading: true, 
     content: null 
    }; 
    }, 
    created() { 
    this.$http.get(this.endpoint).then(resp => { 
     this.content = resp.body; 
     this.loading = false; 
    }); 
    } 
    } 
</script> 
+0

很喜歡,但該模式已由Angular應用程序建立。即來自服務器的響應提供這種結構化的數據。 – arturobelano

+0

嗯......你能否把端點從他們發回的div中取出來,並用https://vuejs.org/v2/api/#Vue-compile創建一個組件? – Stephen

+0

我認爲更接近和更接近,但渲染功能是同步的,數據是異步的。我認爲我們必須調用渲染函數是一種非同步的方式。你能做到嗎? – arturobelano