Angular.js的$ compile不会替换值

时间:2013-08-20 22:51:48

标签: angularjs

我正在构建一个使用第三方库的Angular.js应用程序。该库要求我传入一个包含HTML的字符串。这个HTML很复杂,需要注入几个值。我想在$compile服务中使用Angular的构建来编译该数据。这是一个例子:

// create the template
var template = "<p>{{ test }}</p>";

// set up the scope
var scope = $rootScope.$new();
scope.test = "hello";

// compile the template
var htmlString = $compile(template)(scope)[0].outerHTML;

当我运行此代码时,我希望htmlString<p>hello</p>,而不是<p class="ng-scope ng-binding">{{ test }}</p>。我理解Angular正在设置它的绑定,但我想要静态内容。有没有办法实现我想要的行为?

1 个答案:

答案 0 :(得分:3)

正如sza所说,由于$ interpolate函数,解决方案很简单:

var template = 'Hello {{ name }}';
console.log($interpolate(template)({name: 'World'}));

控制台输出为:

Hello World