2015-09-06 61 views
1

我有一個Web服務,它返回一個模板,例如如何使用angularjs編譯任意模板/模型?

Hello {{Name}}, Today is {{Yesterday}} 

然後,我有另一個網站,它返回一個JSON對象

{ 
    "Name": "Mr. Been", 
    "Yesterday": "a nice day", 
    "otherdata": "unknown" 
} 

是否有可能從從JSON對象中的數據替換模板中的按鍵?

模板和Web服務數據是完全動態的(未知)。

回答

1

是的,您可以使用$interpolate服務。它將具有潛在角度插值表達式的字符串轉換爲接受範圍對象並返回插值字符串的函數。

你會使用這樣的:

// get the template and data to interpolate however is necessary 
var template = getTemplate(); 
var locals = getLocals(); 

// perform interpolation 
var result = $interpolate(template)(locals); 

有您可以通過自定義功能$interpolate如何運作的更多細節,所以take a look at the documentation一些其他的選擇。

+0

這真棒,沒有意識到'上下文'的東西putting而不是'$ scope' +1 –

+0

它似乎取消無效的值無法找到(例如,如果{{一些}}不存在它用空字符串替換它)。是否有可能禁用此行爲?原因是相同的模板需要依次插入多個模型/ json對象 –

+0

@AnonyHunt首先將所有對象合併,然後*插值。 –