小编Har*_*rns的帖子

AngularJS Provider依赖注入 - 在提供程序中使用$ log

问题很简单:使用AngularJS我们不能将$ log注入提供者.

angular.module('my.module', [])
    .provider('myProvider', function ($log, $logProvider) {
        $log.log("Aloha!"); // Unknown provider: $log
        $logProvider.log("Hi!"); // undefined is not a function: $logProvider has no `log` method 
        this.$get = function($log) {
            $log.log("Hello!"); // Everything is ok here
        };
    });
Run Code Online (Sandbox Code Playgroud)

是的,我们可以注入$logProvider,但它没有需要的方法(.log,.error等).

是的,我们可以注入$logProvider,然后手动调用$logProvider.$get(),但我们将无法使用装饰器的其他逻辑.

是的,我们可以编写自己的logProvider,但我想知道为什么Angular不支持这个开箱即用的功能.

那么,我们不能在提供者中以"真正的角度方式"使用控制台吗?这个事实很奇怪.而且伤心.

问题:我如何在提供商中以"真正的角度方式"使用控制台?

我无法找到这个问题的任何解释.Angular Developers Guide说我们需要在每个地方使用$ log而不是控制台.

javascript dependency-injection angularjs

12
推荐指数
1
解决办法
5379
查看次数

TypeScript严格的类/接口

我使用TypeScript版本2.3.4.我想编写一个接受必须具有指定字段的对象的函数.但是此对象不应包含任何其他字段.我怎样才能做到这一点?

现在这只有在我定义对象内联时才有效.但是,如果我使用另一个带有额外字段的对象 - 编译器将允许它.什么是完全错误的.

例:

function foo(arg: { a: string }) { // there is tons of fields actually
  // ...
}

foo ({a: "qwerty"}); // No Error - ok

foo ({a: "qwerty", b: 123}); // Error - ok

let bar = {
  a: "qwerty",
  b: 123
};

foo (bar); // No Error - NOT OK !!!
Run Code Online (Sandbox Code Playgroud)

可以使用接口,类,类型声明来编写相同的代码 - 这是同样的问题.

现在我必须手动从对象中提取字段,以确保没有额外的字段.但是我无法在整个代码中传播〜1000个函数(我真的需要这个) - 它太乱了.我创建API包装器,我需要确保没有传递给服务器的额外或错误的字段.

typescript typescript2.0

10
推荐指数
1
解决办法
1448
查看次数

为什么console.log()polyfill不使用Function.apply()?

我一直在寻找一些流行的console.log()包装纸/填料:

我注意到他们都接受多个arguments,但他们都做这样的事情:

console.log(arguments);
Run Code Online (Sandbox Code Playgroud)

这导致像这样的输出(在Chrome中):

<code>console.log()</code>也接受多个参数,这样就可以产生(恕我直言)卓越的输出:</p>

<pre><code>console.log.apply(console, arguments)
</code></pre><a target=Run Code Online (Sandbox Code Playgroud)

这导致像这样的输出(在Chrome中):

<code>console.log.apply()</code>多个参数?或者这仅仅是品味或节省字节的问题?</p> </div>
        <p>
          <a href=javascript debugging polyfills

7
推荐指数
1
解决办法
1754
查看次数

AngularJS有两个不同的$ injectors

今天我发现,$injector注入配置或提供商不同于$injector注入服务,工厂或控制器.

get()从这个$喷射功能的工作方式不同.

$injector从配置或提供商,不能get()任何服务!$injector.get('myService')抛出Error: [$injector:unpr] Unknown provider: myService,但$injector.has('myService')返回真实.这非常奇怪.

$injector 从服务或控制器正常工作.

以下是一个代码示例,以便更好地理解:

angular.module('app', [])

        .provider('myProvider', function ($injector) {
            this.$get = ['$injector', function (serviceInjector) {
                return {
                    providerInjector: $injector,
                    serviceInjector: serviceInjector
                };
            }];
        })

        .service('myService', function () {})

        .controller('myCtrl', function ($scope, myProvider) {
            var providerInjector = myProvider.providerInjector;
            var serviceInjector = myProvider.serviceInjector;

            console.log(providerInjector === serviceInjector); // -> false

            console.log(serviceInjector.has('myService')); // `serviceInjector` has `myService`
            console.log(getMyService(serviceInjector)); // `serviceInjector` can get `myService` …
Run Code Online (Sandbox Code Playgroud)

dependency-injection angularjs angularjs-injector

6
推荐指数
1
解决办法
1001
查看次数

NancyFX:批量请求支持

问题很简单:我需要为NancyFX添加批量请求支持.

最近我在github上发现关于Nancy批处理支持的问题.问题是很久以前创建的,但仍然没有任何可行的解决方案.这个问题 - 我唯一提到的Nancy批处理我发现了!

使用来自该gistpull请求的代码,我们可以解析批处理请求到部件,并创建Nancy Request对象.我们甚至可以将它们发送给NancyEngine.

var contentType = new ContentType(Request.Headers.ContentType);
var multipartRequest = new HttpMultipart(Request.Body, contentType.Boundary);

foreach (var boundry in multipartRequest.GetBoundaries())
{
    var subRequest = boundry.Value.ReadAsRequest(); // our extension

    nancyEngine.HandleRequest(subRequest,
        context =>
        {
            // success
        },
        exception =>
        {
            // error
        });
}
Run Code Online (Sandbox Code Playgroud)

但是我从多个Nancy响应中创建批量响应时遇到了麻烦.我需要像MultipartContentASP WebApi 这样的类,但是对于Nancy来说.

有谁知道任何工作南希配料解决方案?或者可以帮助创建多个Nancy响应的批量响应?

c# batching nancy

5
推荐指数
0
解决办法
155
查看次数