2016-07-14 16 views
5

ifadesini değerlendirmek:ben Açısal böyle bir şey yapacak bir fonksiyon için arıyorum

var testValues = { 
    name: 'John Doe', 
    number: 15 
} 
somefunction('Hello, {{name}}, you are {{number}} years old', testValues) 
// returns 'Hello, John Doe, you are 15 years old' 

Ben $ eval buna benzer bir şey yapar biliyorum ama çift olamaz bunun içinde parantez.

+0

Denemek '$ derleme()' ...? – malix

cevap

3

Muhtemelen $interpolate hizmetini arıyorsanız. belgelere

Örnek:

var $interpolate = ...; // injected 
var exp = $interpolate('Hello {{name | uppercase}}!'); 
expect(exp({name:'Angular'})).toEqual('Hello ANGULAR!'); 

$interpolate sadece şablonları gibi bir dize derler ve Resim bağlamı kullanarak bir dizi veren bir işlev verir.

3

Bir şablonu elle derleyebilirsiniz. $compile hizmeti enjekte ve $scope nesneye karşı şablonu derlemek:

$scope.model = { 
    name: 'tom' 
}; 

$compile('<div>Hello {{model.name}}</div>')($scope); 

Bu bir DOM nesnesi sarılı bir jqLite nesnesi döndürür.

+0

'$ compile' basit bir dize enterpolasyon IMO'su için bir overkill değeri olabilir (eğer bu OP'nin ihtiyacı ise), ancak çalışmasına rağmen - aslında dahili olarak $ interpolate kullanır. – plamut

İlgili konular