2015-09-06 86 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首先将所有对象合并,然后*插值。 –