我是Angular的新手,并试图通过新的做事方式加快速度.
我想将一个select元素绑定到一个对象列表 - 这很容易:
@Component({
selector: 'myApp',
template: `<h1>My Application</h1>
<select [(ngModel)]="selectedValue">
<option *ngFor="#c of countries" value="c.id">{{c.name}}</option>
</select>`
})
export class AppComponent{
countries = [
{id: 1, name: "United States"},
{id: 2, name: "Australia"}
{id: 3, name: "Canada"},
{id: 4, name: "Brazil"},
{id: 5, name: "England"}
];
selectedValue = null;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,看起来selectedValue将是一个数字 - 所选项目的ID.
但是,我实际上想要绑定到country对象本身,以便selectedValue是对象而不仅仅是id.我尝试改变选项的值,如下所示:
<option *ngFor="#c of countries" value="c">{{c.name}}</option>
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.它似乎将一个对象放在我的selectedValue中 - 但不是我期待的对象.您可以在我的Plunker示例中看到这一点.
我也尝试绑定到change事件,以便我可以根据所选的id自己设置对象; 但是,看起来更改事件在更新绑定的ngModel之前触发 - 这意味着我无法访问此时新选择的值.
是否有一种干净的方法将选择元素绑定到具有Angular 2的对象?
我对 .NET Core 的各种代码分析器有点困惑。
如果您创建默认的 .NET Core Web 项目,您将获得Microsoft.CodeAnalysis.Analyzers.
另外,在NuGet上,还有Microsoft.CodeQuality.Analyzers(注意名称上的细微差别)。安装后,我发现它包含了更多的规则。
最后,还有Microsoft.CodeAnalysis.FxCopAnalyzers,它似乎包含Microsoft.CodeQuality.Analyzers。
Microsoft.CodeAnalysis.Analyzers那么、Microsoft.CodeQuality.Analyzers和 之间到底是什么关系呢Microsoft.CodeAnalysis.FxCopAnalyzers?我的项目应该有什么?
PS 创建新项目后,我在 NuGet 中搜索Microsoft.CodeAnalysis.Analyzers包(该包已存在于我的项目中)。它找到它并指出我的项目有 v1.1 并且需要将其升级到 v2.9.4。然而,根据 NuGet 的说法,v1.1 于 2015 年发布。这没有任何意义,因为我使用的是 VS2019,并且该分析器在 2015 年至 2019 年间发布了大量版本。
但是,当我将软件包升级到 2.9.4 时,分析器具有与 v1.1 相同的 3 条规则。那么我到底要升级什么?
我正在尝试制作自己的游戏引擎以用于学习目的,但我也在尝试制作一些经过优化并能够处理各种cross-platform游戏的东西。
也就是说,我现在需要选择一个数学库来处理图形渲染的 SIMD 操作,我无法决定应该选择哪个。
经过一些研究,我发现 Math.NET 似乎非常适合这项工作,但本机System.Numerics似乎更易于使用,并且不需要第三方依赖项。
我看过一些声称System.Numerics速度很慢的帖子,但它们都已经过了截止日期(3 到 6 年前),所以我认为它们不再有可靠的结果。
所以我的问题是,特别是现在.NET Core 3.0已经发布,已经System.Numerics足够可靠,可以用于繁重的图形计算,还是我应该忘记它并去做类似的事情Math.NET?
最后,会不会有我没有考虑过的更好的选择?我承认,如果有一个库可以对特定于平台的代码提供某种抽象,那就太好了(但自己编写也不成问题)