小编Yac*_*gui的帖子

如何$在控制器中注入动态依赖

我仍然是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)

javascript dependency-injection angularjs

44
推荐指数
1
解决办法
4万
查看次数

使用HTML5将文件上传到Google Drive API

我正在创建一个使用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)

html5 file-upload google-drive-api

4
推荐指数
1
解决办法
3956
查看次数