我正在生成一些带有angular的html代码,让它看起来像这样
exports.someApi = function(req,res){
res.send('<p>some html {{ "ENTER-PASSWORD" | translate }} </p>');
}
在我的控制器中我做了这个
$http({method: 'GET', url: '/someapi'}).
success(function(data, status, headers, config) {
console.log(data);
$('.testPrint').html(data);
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
问题是,我得到了正确的响应,但angular代码没有执行它打印在html
some html {{ "ENTER-PASSWORD" | translate }}
应该写一些HTML输入密码
如何做到这一点?
这不是Angular的做法。具体来说,$(...).html(data)
会直接将数据设置为DOM,绕过Angular的编译步骤。这一步是"神奇"发生的地方(即在您的情况下,{{...}}
被绑定到模型)。
一些方法:
- 制作指令,使用
templateUrl: "/someapi"
。当指令要显示时,Angular会加载/someApi
并编译它。 - 使用
ng-include="'/someApi'"
(注意双引号内的单引号;这是有意为之)。可能与ng-if
一起隐藏不需要的内容。 - ui-router为子视图导航提供了高级的功能,可以满足你的需要。
这个答案是必读的