小编rca*_*ton的帖子

有条件地将RouterLink或其他属性指令添加到Angular 2中的元素

在Angular 2中,如果我有一个元素,<button></button>我怎么能有条件地添加属性指令[routerLink]="['SomeRoute']呢?

angular

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

Angular 2日期反序列化

我有一个Angular 2应用程序.服务是从api请求数据,返回结果如下:

{
    "data":[
        {"id":1,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.1","sourceDatabaseName":"Database1","targetDatabaseServer":"192.168.99.101","targetDatabaseName":"Database2"},
        {"id":2,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.2","sourceDatabaseName":"Database3","targetDatabaseServer":"192.168.99.102","targetDatabaseName":"Database4"},
        {"id":3,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.3","sourceDatabaseName":"Database5","targetDatabaseServer":"192.168.99.103","targetDatabaseName":"Database6"}
    ]
}
Run Code Online (Sandbox Code Playgroud)

我的Angular 2服务看起来像这样(为了简洁起见,我已经减少了错误处理,因为我们在这里开心路径):

getList() : Observable<SomeModel[]> {
    return this._http.get(this._getListUrl).map(this.extractData);
}

 private extractData(res: Response) {
    return res.json().data || {};
}
Run Code Online (Sandbox Code Playgroud)

和我的组件是这样的:

results: SomeModel[];
errorMessage: string;
ngOnInit() {
    this._someService.getList()
        .subscribe(
        results => this.results = results, 
        error => this.errorMessage = <any>error);
}
Run Code Online (Sandbox Code Playgroud)

我的模特是这样的:

export class SomeModel {

    constructor(
        public id: number,
        public timestamp: Date,
        public sourceDatabaseServer: string,
        public sourceDatabaseName: string,
        public targetDatabaseServer: string,
        public targetDatabaseName: string
    ) { }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用DatePipe显示时间戳时,一切看起来都在工作,因此{{item.timestamp | date:'short'}}应用程序会出现以下错误消息: …

rxjs typescript angular

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

Xamarin.Forms UWP 应用程序在使用 .net 本机工具链运行时失败,但可以正常工作

我有一个 Xamarin.Forms UWP 应用程序(Xamarin.Forms v3.4.0.1008975,UWP 目标/分钟版本 16299,VS 2017 15.9.11)。当不使用 .net 本机工具链进行编译时,它可以正确构建并运行。当使用 .net 本机工具链编译时,它可以正常构建,但在运行时会失败。这是一个问题,因为我无法将该应用程序发布到 Windows 商店。该应用程序之前(大约 10 个月前)已发布到商店并且运行正常。从那时起,随着 XF、Prism、sqlite 软件包的更新版本以及在许多其他更改中添加了其他几个软件包,进行了广泛的检修,因此几乎不可能找出可能导致这种情况的更改。

我通过获取 Rg.Plugins.Popup 和 Xam.Plugin.Iconize.FontAwesome 包的程序集列表并将它们传递到Xamarin.Forms.Forms.Init(e, assemblies);UWP 项目中的 App.xaml.cs 中,成功解决了这些包的一些初始问题。这修复了我的应用程序中弹出窗口和字体图标的崩溃/显示问题。

当应用程序启动时,我看到几个FileNotFoundExceptionXamarin.Forms.Forms.Init(...)表单调用中得到处理Cannot load assembly 'clrcompression'. No metadata found for this assembly.。缺少的程序集是:

  • 清除压缩
  • e_sqlite3
  • 库EGL
  • libGLESv2
  • libSkiaSharp
  • SkiaSharp.Views.Interop.UWP
  • sqlite3

如前所述,这些错误已被处理并且仅在调试时可见。我还没有看到任何明确的证据表明这些错误是一个问题,因为应用程序肯定从 Sqlite 读取一些数据而没有错误,并且我看到使用 SkiaSharp 正确绘制的图像。

但是,当我执行导致应用程序崩溃的某些操作时,我遇到其他运行时错误。例如Unhandled exception at 0x05F8F74C (SharedLibrary.dll) in MyApp.UWP.exe: 0x00001007. occurred。如果我查看线程窗口,我会得到更多信息:

Not Flagged >   13884   0   Worker Thread   <No Name>   
System.Private.SharedLibrary.Interop.Generated.dll!__Interop.api_ms_win_core_kernel32_legacy_l1_1_0_dll.PInvoke_RaiseFailFastException
System.Private.SharedLibrary.Interop.Generated.dll!__Interop.api_ms_win_core_kernel32_legacy_l1_1_0_dll.PInvoke_RaiseFailFastException(Interop._EXCEPTION_RECORD* …
Run Code Online (Sandbox Code Playgroud)

c# .net-native xamarin.uwp

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

使用 Azure CLI 和 JMESPath 进行筛选

我正在使用 Azure CLI 获取 vnet 对等互连列表:az network vnet peering list. 这将返回以下结构的 json:

[
  {
    ...
    "name": "prefix1-name",
    ...
  },
  {
    ...
    "name": "prefix2-name",
    ...
  }
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试按以某个前缀开头的名称过滤结果。我尝试了以下各种组合: az network vnet peering list --resource-group my-rg --vnet-name my-vnet --query "[?starts_with(name,'prefix1-')].{name}" 但是这总是失败并显示类似].{name} was unexpected at this time.

我错过了什么?

azure-cli jmespath

2
推荐指数
1
解决办法
2198
查看次数

Castle Windsor 可以从动态程序集中注册类型吗?

我有一个使用 Reflection.Emit 创建的动态生成的程序集。然后,我尝试通过以下方式使用 Windsor 从该程序集中注册控制器类型:

WindsorContainer.Register(Classes.FromAssembly(myDynamicAssembly).BasedOn<ApiController>().LifestylePerWebRequest());

当我尝试导航到这些控制器之一中指定的端点时,出现以下错误:

[NotSupportedException: The invoked member is not supported in a dynamic assembly.]
System.Reflection.Emit.InternalAssemblyBuilder.GetExportedTypes() +68
Castle.Core.Internal.ReflectionUtil.GetAvailableTypes(Assembly assembly, Boolean includeNonExported) +74
Castle.MicroKernel.Registration.FromAssemblyDescriptor.&lt;SelectedTypes&gt;b__0(Assembly a) +21
System.Linq.&lt;SelectManyIterator&gt;d__14`2.MoveNext() +267
Castle.MicroKernel.Registration.FromDescriptor.Castle.MicroKernel.Registration.IRegistration.Register(IKernelInternal kernel) +296
Castle.MicroKernel.DefaultKernel.Register(IRegistration[] registrations) +72
Castle.Windsor.WindsorContainer.Register(IRegistration[] registrations) +50
Run Code Online (Sandbox Code Playgroud)

是否无法在动态程序集中注册任何内容,或者是否存在我遗漏的其他问题?

请注意,如果没有 Windsor(即使用默认的控制器激活器服务),程序集/控制器/端点可以正常工作。我可以使用 Windsor 的 DynamicProxy 功能而不是 Reflection.Emit 方法,但在解决这个有点令人畏惧的任务之前,我想用当前方法穷尽所有可能性!

c# castle-windsor

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