小编Dav*_*tti的帖子

Angular UI路由器嵌套状态在子状态中解析

在我正在研究的一个有角度的应用程序中,我希望有一个抽象的父状态,它必须解决其所有子状态的某些依赖关系.具体来说,我希望所有州都要求经过身份验证的用户从某个authroot状态继承该依赖关系.

我遇到的问题是父依赖关系并不总是被重新解决.理想情况下,我希望让父状态检查用户是否仍然自动登录任何子状态.它说,在文档中

子状态将从父状态继承已解析的依赖关系,它们可以覆盖它们.

我发现如果我从父级之外的状态进入任何子状态,父级依赖关系只会被重新解析,但如果在兄弟状态之间移动则不会.

在此示例中,如果在状态authroot.testA和authroot.testB之间移动,则只调用一次GetUser方法.当你移动到other状态并返回时,它将再次运行.

我能够将User依赖于每个子状态,以确保每次进入任何这些状态时都调用该方法,但这似乎会破坏继承依赖的目的.

我不正确地理解文档吗?有没有办法强制父状态重新解决其依赖关系,即使状态在兄弟姐妹之间发生变化?

的jsfiddle

<!doctype html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.0/angular-ui-router.min.js"></script>
<script>
(function(ng) {
    var app = ng.module("Test", ["ui.router"]);
    app.config(["$stateProvider", "$urlRouterProvider", function(sp, urp) {
        urp.otherwise("/testA");
        sp.state("authroot", {
            abstract: true, 
            url: "",
            template: "<div ui-view></div>", 
            resolve: {User: ["UserService", function(UserService) {
                        console.log("Resolving dependency...");
                        return UserService.GetUser();
                    }]}
        });
        sp.state("authroot.testA", {
            url: "/testA", 
            template: "<h1>Test A {{User|json}}</h1>", 
            controller: "TestCtrl"
        });
        sp.state("authroot.testB", {
            url: "/testB", 
            template: "<h1>Test B {{User|json}}</h1>", 
            controller: "TestCtrl"
        });
        sp.state("other", {
            url: "/other", 
            template: …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router

32
推荐指数
2
解决办法
3万
查看次数

在单独的CTE中调用具有不同参数的多语句TVF,显示错误的结果

我试图在同一个查询中使用不同的参数两次调用TVF,但由于某种原因,当我将结果加在一起时,其中一个结果掩盖了另一个.我把问题简化为这个小例子:

拿这个内联TVF:

CREATE FUNCTION dbo.fnTestErrorInline(@Test INT)
RETURNS TABLE 
AS
RETURN 
(
    SELECT ID, Val
    FROM (VALUES 
        (1, 1, 10), 
        (1, 2, 20), 
        (1, 3, 30), 
        (1, 4, 40), 
        (2, 1, 50), 
        (2, 2, 60), 
        (2, 3, 70), 
        (2, 4, 80)
    ) t(Test, ID, Val)
    WHERE t.Test=@Test
)
Run Code Online (Sandbox Code Playgroud)

和等效的多线函数:

CREATE FUNCTION dbo.fnTestErrorMultiline(@Test INT)
RETURNS @tbl TABLE (
    ID INT NOT NULL, 
    Val INT NOT NULL
)
AS
BEGIN
    IF @Test=1
    INSERT INTO @tbl (ID, Val) VALUES 
    (1, 10),
    (2, 20),
    (3, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server user-defined-functions common-table-expression

9
推荐指数
1
解决办法
171
查看次数

当混合私人nuget feed和NEST时,dotnet恢复失败

dotnet restore 在某些包裹上出乎意料地失败了,我无法弄清楚原因.

我有一个通过VSTS Packages扩展托管的私有nuget repo,我的NuGet.Config看起来像(如此处所述https://www.visualstudio.com/en-us/docs/package/nuget/auth#dotnet-core)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="MyPackages"     value="https://{myaccount}.pkgs.visualstudio.com/_packaging/{myfeed}/nuget/v3/index.json"` />
  </packageSources>
  <packageCredentials>
    <MyPackages>
        <add key="Username" value="vsts" />
        <add key="ClearTextPassword" value="{my PAT}" />
    </MyPackages>
  </packageCredentials>
</configuration>
Run Code Online (Sandbox Code Playgroud)

如果我使用dotnet new console并添加对我的Feed上托管的包的引用来创建新项目,则还原工作正常.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="My.Lib" Version="1.0.0"></PackageReference>
  </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

但是,如果我还包含对NEST版本2.5.0(或任何版本)的软件包引用,则dotnet --info[C:\ Users\test\dotnet\dotnet.csproj] C:\ Program Files\dotnet\sdk \会失败 . 1.0.0\NuGet.targets(97,5):错误:响应状态代码不表示成功:401(未授权).[C:\ Users \用户测试\ DOTNET\dotnet.csproj]`

但奇怪的是,用其他任何恢复替换NEST都会有效.例如,添加ElasticSearch.Net 2.5.0将正常工作.

如果我从我的nuget.config中删除我的包凭据和私有nuget feed并且仅引用NEST,那么它可以工作 - 但是我无法访问我的私人订阅源.

最后最奇怪的是昨天恢复工作正常,但现在对我和我的同事来说,我们无法恢复.

这是VSTS包问题吗?NEST可能有什么不同?

重现步骤

预期的行为

dotnet恢复不应该无法恢复

实际行为 …

c# nuget .net-core

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