AngularJS NGS消毒和SCE
我试图了解$sce和ngSanitize是如何工作的,以便我能够正确地使用它,请回答一些问题,以便澄清。我无法从文档中获得足够的详细信息 首先,据我所知,$sce为自动启用的输入提供转义服务AngularJS NGS消毒和SCE,angularjs,ngsanitize,Angularjs,Ngsanitize,我试图了解$sce和ngSanitize是如何工作的,以便我能够正确地使用它,请回答一些问题,以便澄清。我无法从文档中获得足够的详细信息 首先,据我所知,$sce为自动启用的输入提供转义服务 那个我不需要显式使用$sce的人?控制器中的$scope变量是否自动转义。或者我需要显式调用$sce.trustAs/ParseAs吗 这是否适用于指令 示例如下所示: link: function(scope, elm, attrs, ctrl) { // view -&g
link: function(scope, elm, attrs, ctrl) {
// view -> model
elm.on('blur keyup change', function() {
scope.$apply(function() {
ctrl.$setViewValue(elm.html());
});
});
// model -> view
ctrl.$render = function() {
elm.html(ctrl.$viewValue);
};
}
至于ngSanitize,它似乎是一个自动配置$sce合理默认值的模块,因此也许使用ngSanitize模块,我不需要显式使用$sce服务
link: function(scope, elm, attrs, ctrl) {
// view -> model
elm.on('blur keyup change', function() {
scope.$apply(function() {
ctrl.$setViewValue(elm.html());
});
});
// model -> view using sanitize
ctrl.$render = function() {
elm.html($sanitize(ctrl.$viewValue));
};
}
至于指令,您可能需要了解“ng bind html”是如何工作的: 因此,我认为$sce仍然必须在自定义指令中显式使用
var parsed = $parse(attr.ngBindHtml);
element.html($sce.getTrustedHtml(parsed(scope)) || '');