【发布时间】:2015-03-18 00:26:25
【问题描述】:
背景: 从事 Angular 前端工作。从后端检索 base64 编码的文档。 atob 给了我一个错误,但一切正常。
怀疑:我认为我的 atob 过滤器被调用了两次。在变量未定义/为空时点击承诺,然后在承诺填充变量之后。
过滤代码:
angular.module('docFilters', []).filter('base64Decode', function() {
return function(cipherText) {
return atob(cipherText);
};
});
控制器代码:
angular.module('doc')
.controller('DocCtrl', ['$scope', 'DocService', function ($scope, DocService) {
$scope.doc = DocService.getCurrentDoc();
}]);
getCurrentDoc() 是一个 REST 请求。它向内部 Web 服务发出 GET 请求。
HTML:
<span ng-bind-html="doc.content | base64Decode"></span>
这工作“很好” - 不检查你永远不会知道的控制台。控制台显示:
“错误:在'Window'上执行'atob'失败:要解码的字符串没有正确编码。”
这对我来说是新的,所以我不确定是否有更好的方法。
【问题讨论】:
标签: javascript angularjs angularjs-scope promise angular-promise