2016-07-14 3 views
5

표현식을 평가 :내가 각도에서이 같은 일을하는 함수를 찾고 있어요

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' 

나는 $ 평가가 이와 비슷한 무언가를 알고 있지만, 그것을 두 번 할 수 없습니다 그 안의 괄호.

+0

'$ compile()'... 시도 하시겠습니까? – malix

답변

3

아마도 $interpolate 서비스를 찾고있을 것입니다. 문서로부터

예 :

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

$interpolate 바로 템플릿 같은 문자열을 컴파일하고, 제공된 콘텍스트를 사용하여 문자열을 출력하는 기능을 리턴한다.

3

템플릿을 수동으로 컴파일 할 수 있습니다. $compile 서비스를 주입하고 $scope 객체에 대한 템플릿을 컴파일 :

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

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

이것은 DOM 객체 감싸되는 jqLite 객체를 반환합니다.

+0

'$ compile'은 내부적으로'$ interpolate'를 실제로 사용합니다. 단순한 문자열 보간 IMO (그것은 OP가 모두 필요하다면)를위한 과도한 비트일지도 모릅니다. – plamut

관련 문제