小编Don*_*ers的帖子

Angular2将json结果转换为接口

使用Angular2和typescript,我从webApi返回JSON,我需要将它放入某种类型的数组中.我无法弄清楚如何将json转换为我需要的接口.

我的类型是这个界面:

export interface Country {
    Id: number;
    Name: string;
}
Run Code Online (Sandbox Code Playgroud)

我的mock返回这个数组:

export var COUNTRIES: Country[] = [
    { "Id": 11, "Name": "US" },
    { "Id": 12, "Name": "England" },
    { "Id": 13, "Name": "Japan" }
];
Run Code Online (Sandbox Code Playgroud)

这是我的代码:country.service.ts

@Injectable()
export class CountryService {
    private _http = null;

    constructor(http: Http) {
        this._http = http;
    }

    getCountries() {
        return Promise.resolve(COUNTRIES);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我用它来称呼它:

export class CountryPickerComponent {
    public countries: Country[];

    constructor(private _countryService: CountryService) { }


    getCountries() {
        this._countryService.getCountries().then(data => this.setData(data));
    }

    setData(data) …
Run Code Online (Sandbox Code Playgroud)

json typescript angular

25
推荐指数
2
解决办法
4万
查看次数

如何将SQL Server localDB升级到较新版本?

是否可以从2012年升级到2014年的SqlServer localDB?

我们目前使用的是SQL Server 2012的版本11.我需要从SQL Server 2014升级到版本12.

我希望能够在不丢失表和数据的情况下完成.

我安装了一个新的localDB但是我没有我的数据.它还有另一个名称,我无法真正更改配置文件,因为它是一个团队项目.

我尝试使用命令行sqlLocalDB工具创建一个名为v11.0的2014版本,但它在旧的2012版本中以任何方式创建它.

C:\Program Files\Microsoft SQL Server\120\Tools\Binn>sqllocaldb create v11.0
LocalDB instance "v11.0" created with version 11.0.3000.0.

C:\Program Files\Microsoft SQL Server\120\Tools\Binn>sqllocaldb create v12.0
LocalDB instance "v12.0" created with version 12.0.2000.8.

C:\Program Files\Microsoft SQL Server\120\Tools\Binn>sqllocaldb create aaaaa
LocalDB instance "aaaaa" created with version 12.0.2000.8.
Run Code Online (Sandbox Code Playgroud)

为什么命名v11.0会改变使用哪个版本?

如何升级现有的v11.0?

sql-server upgrade localdb

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

Angular2 - 如何最好地处理过期的身份验证令牌?

我正在使用Angular 2.1.2.

我有一个身份验证令牌(使用angular2-jwt),如果它到期,我的webApi调用失败,出现401错误.我正在寻找一个解决方案,用户不会丢失任何输入数据.

我可以抓住这个401并用登录打开一个模态.然后用户登录,模态消失,他们看到他们的输入屏幕.但是,失败的请求显示错误,因此我需要重新处理请求.如果是路由器导航,则初始数据未加载.

我可以重新加载页面,但如果我router.navigate到同一页面,它似乎并没有真正重新加载页面.我不想在单页面应用上进行整页重新加载.有没有办法强制router.navigate运行,即使它是当前页面?

重新导航仍然是一个问题,因为我会丢失任何未保存的新输入数据.

理想情况下,请求只是"暂停",直到用户从模态登录.我还没有找到实现这个的方法.

有任何想法吗?有最好的做法吗?

angular2-routing angular2-jwt angular

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

实体框架在迁移之前执行SQL

我正在开发一个使用Entity-Framework 6代码优先的现有项目.我需要在迁移运行之前运行一些SQL.

我有一个带有种子方​​法的DbMigrationsConfiguration类,但种子在迁移后运行.

我认为如果我在构造函数中运行SQL但它无法获取对上下文的引用,它将起作用.

有谁知道如何做到这一点?

ef-code-first entity-framework-6

13
推荐指数
1
解决办法
8176
查看次数

与visual studio一起使用angular2

有没有人让Angular2(测试版)在Visual Studio中工作?

我正在使用Visual Studio 2015和更新1,我有一个HTMLTypeScript项目.

如果我将'模块系统'设置为"系统",我会遇到构建错误(例如:找不到模块'angular/core'),但它会在保存时编译ts文件(不是在构建时).如果我已经运行了应用程序,我可以刷新页面并且它可以工作.

如果我将'模块系统'设置为"CommonJS",它将正确构建但我得到运行时错误,例如"'require'未定义"和"无法获取未定义或空引用的属性'拆分".

我想我应该使用系统,因为这是使用tsconfig.json和教程中使用的lite-server(使用npm start)时的工作原理.

typescript visual-studio-2015 angular

13
推荐指数
1
解决办法
4510
查看次数

Docker Windows 容器无法解析 host.docker.internal

我的 Windows docker 容器无法解析host.docker.internal,但它可以与 Linux 容器一起使用。我更愿意继续使用 Linux 容器,但我在使用旧的 .Net Framework 4.7.2 应用程序时遇到了问题。

我的应用程序连接到本地计算机上的 RabbitMQ。这在 Linux 容器中按预期工作,但在 Windows 容器中它会抛出此错误:

System.Net.Sockets.SocketException:没有这样的主机已知

我尝试过 ping host.docker.internal。

C:\app>ping host.docker.internal Ping 请求找不到主机 host.docker.internal。请检查名称并重试。

这是我的 dockerFile:

FROM mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
ARG source
WORKDIR /app
COPY ${source:-SampleApp/obj/Docker/publish} .
ENTRYPOINT ["C:\\app\\SampleApp.exe"]
Run Code Online (Sandbox Code Playgroud)

我使用的是 docker 版本20.10.2和 docker 桌面版本3.1.0
我在 Windows 10 版本 10.0.18363 上运行。

docker docker-container docker-for-windows windows-container docker-desktop

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

EF 6带有dnx项目

我有一个新的ASP.net 5 dnx类库,我用于实体框架.我需要针对EF 6,因为我需要的一些功能不在EF 7中.

首先,EF工具(如启用迁移)不存在.我添加了一个旧的样式类库并安装了EF 6,现在命令就在那里.

当我运行启用迁移时,我收到此错误:

PM>启用 - 迁移

异常调用 "SetData的" 与 "2" 的参数(一个或多个):在装配"类型 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject'"Microsoft.VisualStudio.ProjectSystem.VS.Implementation,版本= 14.1. 0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'未标记为可序列化." 在d:\项目\卤面\ FMS \代码\电流\ FMSSupport\FMSSupport \包\ EntityFramework.6.1.3\TOOLS\EntityFramework.psm1:720字符:5 + $ domain.SetData( 'startUpProject',$ startUpProject)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:SerializationException System.NullReferenceException:未将对象引用设置为对象的实例.在System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(工程项目的Int32 shellVersion)在System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(工程项目)在System.Data.Entity.Migrations.MigrationsDomainCommand. GetFacade(字符串configurationTypeName,布尔useContextWorkingDirectory)在System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(字符串contextTypeName)在System.Data.Entity.Migrations.EnableMigrationsCommand.<> c__DisplayClass2.<构造函数> b__0()在System.Data .Entity.Migrations.MigrationsDomainCommand.Execute(Action command)对象引用未设置为对象的实例.

我尝试了不同的启用迁移选项,例如指定启动项目或contextTypeName.

有任何想法吗?

c# entity-framework-6 dnx project.json asp.net-core

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

Docker - 无法挂载本地卷,没有这样的文件或目录

我有一个 docker-compose 工作了很长时间然后突然停止了。我收到:无法安装本地卷,没有这样的文件或目录

这已经工作了几个月,并在几周前开始出现错误。docker-compose 位于源代码管理中,我可以看到它没有改变。我开始在一台新机器上安装它,不久之后我开始在我现有的盒子上安装它。我怀疑这是一种安全或政策设置。我尝试安装旧版本的 docker 桌面,但仍然出现错误。

这是命令和完整错误:

 docker-compose  up -d
[+] Running 0/1
 - Container dockertest_testimage_1  Starting                                                                      1.1s
Error response from daemon: error while mounting volume '/var/lib/docker/volumes/dockertest_testLoc/_data': failed to mount local volume: mount testimage:/var/lib/docker/volumes/dockertest_testLoc/_data, flags: 0x1000: no such file or directory
Run Code Online (Sandbox Code Playgroud)

这是给出相同错误的组合的测试版本。

version: '3.9'
services:
  testimage:
    image: ubuntu  
    volumes:       
      - testLoc:/var/opt/testing
volumes:
  testLoc:
    driver: local
    driver_opts: 
      type: "none"
      o: "bind"
      device: "./testimage"
Run Code Online (Sandbox Code Playgroud)

版本:

Docker version 20.10.11, build dea9396
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.19044 N/A …
Run Code Online (Sandbox Code Playgroud)

docker-compose docker-volume

9
推荐指数
0
解决办法
3951
查看次数

sql server链接服务器到oracle不返回数据存在时找到的数据

我在SQL Server中有一个链接服务器设置来命中Oracle数据库.我在SQL Server中有一个查询,它使用点表示法连接到Oracle表.我收到Oracle的"No Data Found"错误.在Oracle方面,我正在访问一个表(不是视图),并且不涉及存储过程.

首先,当没有数据时,我应该只获得零行而不是错误.
其次,在这种情况下应该有数据.
第三,我只看到PL/SQL代码中的ORA-01403错误; 永远不会在SQL中.

这是完整的错误消息:
链接服务器"OM_ORACLE"的OLE DB提供程序"OraOLEDB.Oracle"返回消息"ORA-01403:未找到数据".
消息7346,级别16,状态2,行1无法从OLE DB提供程序"OraOLEDB.Oracle"获取链接服务器"OM_ORACLE"的行数据.

这里有一些更多的细节,但它可能没有任何意义,因为你没有我的表和数据.
这是带问题的查询:

select *
   from eopf.Batch b join eopf.BatchFile bf
                 on b.BatchID = bf.BatchID
          left outer join [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] du
                 on bf.ReferenceID = du.documentUploadID;
Run Code Online (Sandbox Code Playgroud)




我无法理解为什么我发现"没有找到数据"错误.下面的查询使用相同的Oracle表并且不返回任何数据但我没有收到错误 - 我只是没有返回任何行.

select * from [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] where documentUploadID = -1
Run Code Online (Sandbox Code Playgroud)



下面的查询返回数据.我刚刚从连接中删除了一个SQL Server表.但是删除批处理表不会更改从batchFile返回的行(在两种情况下都是271行 - batchFile中的所有行都有批处理条目).它仍应将相同的batchFile行连接到相同的Oracle行.

select *
from eopf.BatchFile bf
   left outer join [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] du
      on bf.ReferenceID = du.documentUploadID;
Run Code Online (Sandbox Code Playgroud)



此查询返回5行.它应该与原始查询中的5相同.(我不能使用它,因为我需要批处理和batchFile表中的数据).

       select *
   from [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] du
   where du.documentUploadId
   in
   (
   select bf.ReferenceID
   from eopf.Batch …
Run Code Online (Sandbox Code Playgroud)

sql-server linked-server ora-01403

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

如何在不导航到路线的情况下更改Angular2路线参数?

我有一个angular2页面显示了一个项目列表.我最初使用路由参数来限制列表,所以我的URL是这样的:

http:// localhost:54675 /#/ listing?filter = {"Country":[6,7]}

这将显示ID为6或7的国家/地区的项目.

然后用户添加第三个国家(比方说8),然后进行服务调用以更新列表.由于列表项绑定到可观察的列表,因此在屏幕上更新.

这正是我想要的行为.但是,如果用户为此页面添加书签,则他们只获取原始路由参数,而不是过滤结果.

为了解决这个问题,我使用:

this._router.navigate(['listing', { filter: newfilter }]);
Run Code Online (Sandbox Code Playgroud)

这将使用此路由重新加载页面:

http:// localhost:54675 /#/ listing?filter = {"Country":[6,7,8]}

这可以使所有内容保持同步并且书签正常工作 但是,有一个完整的页面刷新.其他项目再次加载 - 不仅仅是过滤后的结果.当它只是一个服务电话时,我也更喜欢视觉效果.

我需要一种方法来更改路由参数,而无需重新加载页面.

angular2-routing

8
推荐指数
1
解决办法
5205
查看次数