小编w.b*_*ian的帖子

如何将服务注入RouteInitializerFn(新的路由DSL)

我正在将我的应用程序切换到新的路由DSL.具体来说,我想做这样的事情preEnter:

final RouteInitializerFn routes =(Router router, ViewFactory views) {
  views.configure({
   'chat': ngRoute(
     path: '/chat',
     // authService.requireState returns a Future<bool>, and may invoke an HttpRequest
     preEnter: (RoutePreEnterEvent e) => e.allowEnter(authService.requireState(LOGGED_IN)),
     view: 'views/chat.html'),

   'login': ngRoute(
     path: '',
     defaultRoute: true,
     view: 'views/login.html')
  });
}
Run Code Online (Sandbox Code Playgroud)

这将在模块中配置如下:

value(RouteInitializerFn, routes);

如果你错过了它,我引用一个注射authServiceRouteInitializerFn.这是不可能的,因为它RouteInitializerFn是一个函数而不是一个类,所以不能注入任何东西.如果我routes在一个类中封装了这个函数,我不知道如何配置RouteInitializerFn,所以我有点陷入困境.

dart angular-dart

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

通过扩展API在Visual Studio代码中更改光标外观

是否可以使用扩展API更改Visual Studio代码中的光标外观?知道VS Code是建立在Chromium之上的,并且没有办法使用CSS在浏览器中设置文本光标的样式,这似乎不太可能.

我正在搞乱并试图实现一些简单的模态编辑,我想在正常模式下创建像vim一样的块游标.

visual-studio-code vscode-extensions

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

基于特征标志有条件地派生

我想在我的 crate 中添加一个功能,可以选择使某些结构可序列化,特别是,我想使用 Serde 的自定义派生宏。Serde 依赖项是可选的,extern crate并且有条件地包含在功能后面的声明。考虑以下:

#[derive(Eq, PartialEq, Serialize)]
struct MyStruct {
    a: u8,
    b: u8
}
Run Code Online (Sandbox Code Playgroud)

启用功能标志后,一切正常。禁用它后,我收到此警告:

#[derive(Eq, PartialEq, Serialize)]
struct MyStruct {
    a: u8,
    b: u8
}
Run Code Online (Sandbox Code Playgroud)

有没有办法有条件地包含派生特征?我正在使用 Rust 1.15 稳定版。

我应该为错误消息提交问题吗?它似乎具有误导性。

rust

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

Typescript 期望 mockImplementation 为所有方法和属性提供模拟

我正在使用 typescript + jest,并且在创建模拟实现时遇到了一些类型检查问题。作为一个例子,我想模拟Credentials以下对象aws-sdk

import { Credentials } from "aws-sdk";

jest.mock("aws-sdk");

const CredentialsMock = mocked(Credentials);

describe("Foo test", () => {
  beforeAll(() => {
    CredentialsMock.mockImplementation(() => { /*** <--- Type checking fails here ***/
      return {
        get: jest.fn()
      }
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当Credentials我只想模拟单个方法时,类型检查器希望我为该类型的每个方法/属性提供模拟。具体错误是:

TS2345:类型参数 '() => { get: jest.Mock; }' 不可分配给类型为“(accessKeyId: string, SecretAccessKey: string, sessionToken?: string | undefined) => Credentials”的参数。

输入 '{ get: Mock; }' 缺少“Credentials”类型中的以下属性:getPromise、needsRefresh、refresh、refreshPromise 等 5 个属性。

有没有办法让打字稿在这里快乐?

typescript jestjs ts-jest

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

将hierarchyid转换为其词法顺序与hierarchyid深度优先顺序相同的字符串

我想知道是否有一种合理的,高效的方法将hierarchyid值转换为一个字符串排序保持其自然深度优先排序的字符串.

谢谢!

t-sql sql-server sql-server-2008

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

添加HTTPS端点后,我收到此警告:在证书存储中找不到"Microsoft.WindowsAzure.Plugins.PasswordEncryption"

我在我的WebRole中添加了一个HTTPS端点,现在当我尝试运行Azure模拟器时,我收到以下警告,这会导致计算模拟器停止并且调试器将保释:

Warning: The SSL certificate 'Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption' for endpoint 'HttpsIn' of role 'MyProj.Web' was not found in the local machine's certificate store.

此证书与HTTPS端点无关.它也不(也不应该)在本地机器的证书存储上 - 它确实存在于CurrentUser证书存储区(我已经检查过).我试图在我的ServiceConfiguration中完全摆脱对这个证书的引用,只是为了看看会发生什么,但它会自动重新添加.

任何帮助,将不胜感激.

编辑:

为了清楚起见,我没有尝试使用Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption证书作为我的SSL证书.我已在本地计算机商店中为HTTPS端点成功设置了单独的自签名证书:

ServiceDefinition.csdef中

    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" />
      <Binding name="HttpsIn" endpointName="HttpsIn" />
    </Bindings>
    ...
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="AzureSSL" />
    </Endpoints>
    ...
    <Certificates>
      <Certificate name="AzureSSL" storeLocation="LocalMachine" storeName="My"/>
    </Certificates>
Run Code Online (Sandbox Code Playgroud)

ServiceConfiguration.Local.cscfg

<Certificates>
  <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="xxxxxxxxxx" thumbprintAlgorithm="sha1" />
  <Certificate name="AzureSSL" thumbprint="xxxxxxxxxx" thumbprintAlgorithm="sha1" />
</Certificates>
Run Code Online (Sandbox Code Playgroud)

azure azure-web-roles

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

是否可以直接在Chromium Dev Tools控制台中输入Dart代码?

我使用Dart VM运行最新的Chromium构建.我想通过搞乱网站开始玩Dart的HTML库,使用Console输入Dart命令.显然,使用Javascript这很容易,但我无法弄清楚如何告诉控制台我正在进入Dart,而不是JS.

这可能吗?

dart dartium

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

是在堆上分配一个结构还是一个结构拥有一个更加惯用的堆指针?

我有一个类型占用太多空间来分配堆栈:

struct Foo {
    lots_of_bytes: [u8; 1024 * 10],
    bar: bool,
    baz: isize,
}
Run Code Online (Sandbox Code Playgroud)

有两个明显的解决方案:

let foo = Box::new(Foo::new());
Run Code Online (Sandbox Code Playgroud)

要么

struct Foo {
    lots_of_bytes: Box<[u8; 1024 * 10]>,
    bar: bool,
    baz: isize,
}
Run Code Online (Sandbox Code Playgroud)

总而言之,我要么在堆上分配整个结构,要么我可以让结构拥有堆指针.这些解决方案中的任何一个都被认为是"惯用"解决方案吗?或者它是严格主观的还是依赖于背景?

rust

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

在Firefox中全尺寸IFrame?

我遇到了Iframes和Firefox的问题.基本上,我将一个IFrame嵌入到一个站点中,因为它占据了整个身体区域.如您所见,它与Google Chrome完美配合.I帧占据了所有的身体区域,没有导航iframe所需的滚动条.

chrome:http://i.stack.imgur.com/muo3U.png

但在Firefox中,它无法正常工作.正如您在此处看到的,只有iframe的一部分可见,滚动条(它们不可见但滚动工作)必须用于导航iframe.这对我的网站来说非常缺乏吸引力.

Firefox:http://i.stack.imgur.com/6Vm1O.png

所以我想知道如何才能让它发挥作用?我搜索和搜索了所有我尝试的解决方案最终都无法正常工作.

这是我的代码和我尝试过的其他代码.

http://pastebin.com/rmdcnLuw

谢谢你的帮助!

html css iframe firefox google-chrome

5
推荐指数
1
解决办法
5435
查看次数

ASP.NET 5中的Application_Start等效项

我在Startup类上遇到过两种方法,ConfigureServices并且Configure.Application_Start在应用程序启动时,是否有与以前版本的asp.net 相同的方法来执行任意工作?

编辑

作为后续,ASP.NET 5在Startup类中可能采用的方法是什么?

asp.net-core

5
推荐指数
1
解决办法
3523
查看次数