我正在构建一个使用第三方库的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正在设置它的绑定,但我想要静态内容。有没有办法实现我想要的行为?
答案 0 :(得分:3)
正如sza所说,由于$ interpolate函数,解决方案很简单:
var template = 'Hello {{ name }}';
console.log($interpolate(template)({name: 'World'}));
控制台输出为:
Hello World