我仍然是Angularjs的首次亮相.我想在我的控制器中动态注入服务(我创建的)的依赖项.
但是,当我使用依赖项编写服务时,我收到此错误:
错误:未知提供者:$ windowProvider < - $ window < - base64
这是控制器的代码.
var base64 = angular.injector(['servicesModule']).get('base64');
console.log("base64", base64.encode("my text will be encoded"));
Run Code Online (Sandbox Code Playgroud)
此代码有效:
var servicesModule = angular.module('servicesModule', []);
servicesModule.factory('base64', function() {
return {
name: 'base64',
readonly: false,
encode: function(input) {
return window.btoa(input);
},
decode: function(input) {
return window.atob(input);
}
};
});
Run Code Online (Sandbox Code Playgroud)
此代码不起作用:
var extModule = angular.module('ext', []);
extModule.factory('base64', ['$window', function($window) {
return {
name: 'base64',
readonly: false,
encode: function(input) {
return $window.btoa(input);
},
decode: function(input) {
return $window.atob(input);
}
}; …Run Code Online (Sandbox Code Playgroud) 我正在创建一个使用Google Drive API的Google Chrome扩展程序。我必须使用HTML5上传文件。
对于文本文件,没有问题。但是,当我要上传二进制文件时,总会出现错误。
因此,当我使用HTML5中的FileReader作为BinaryString上载文件时,我的图像已损坏,我无法读取它。
当我使用Base64编码(主体部分的标题为“ Content-Transfer-Encoding:base64”)时,我遇到了400错误的请求->格式错误的多部分主体。
你能帮我吗 ?谢谢 :)
PS:我不想使用Google Drive SDK,我更喜欢编写所有代码。
var bb, reader;
var meta = {
"title": "mozilla.png",
"mimeType": "image/png",
"description": "Mozilla Official logo"
};
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://developer.mozilla.org/media/img/mdn-logo-sm.png', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e){
if(this.status == 200){
bb = new WebKitBlobBuilder();
bb.append(this.response);
console.log('Download OK');
reader = new FileReader();
reader.readAsDataURL(bb.getBlob('image/png'));
reader.onloadend = function(e){
console.log('Reader OK');
var bound = 287032396531387;
var parts = [];
parts.push('--' + bound);
parts.push('Content-Type: application/json');
parts.push('');
parts.push(JSON.stringify(meta));
parts.push('--' …Run Code Online (Sandbox Code Playgroud)