小编mal*_*loo的帖子

如何在Angular 2中将select选项值设置为null

我有以下标记:

<select [ngModel]="selectedCategory" 
     (ngModelChange)="selectCategory($event && $event != 'null' ? $event : null)">

  <option [value]="null">(all categories)</option>
  <option *ngFor="let cat of categories" [ngValue]="cat">{{cat.name}}</option>

</select>
Run Code Online (Sandbox Code Playgroud)

在TypeScript中:

export class MyComp {
    public categories: Category[];
    public selectedCategory: Category;
    public selectCategory(cat: Category) {
        this.selectedCategory = cat;
        doStuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

它看起来不像是正确的方法.是否有任何其他不那么冗长的方法来获取值为null(而不是'null')的默认选项?我不能将默认选项放在categories数组中,因为它会搞乱其他代码.我不介意ngModelChange因为我需要在选择时运行自定义代码.这只是$event && $event != 'null' ? $event: null我想清理的部分.

我无法使用[ngValue]默认选项; 它只给了我一个值0: null(字符串).并且跳过设置值导致绑定selectedCategory=null不匹配默认选项,而在init处取消选择组合框.

angular2-template angular

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

protobuf3 中重复的 Int32Value(可为 null 的 int 数组)

我有以下 protobuf 消息协议:

message TestMsg
{
  int32 int = 1;
  google.protobuf.Int32Value nullable_int = 2;
  repeated google.protobuf.Int32Value nullable_int_array = 3; // Runtime fail
}
Run Code Online (Sandbox Code Playgroud)

protoc 可以很好地编译它,并且在 C# 中所有 Int32Value 都是 int?。但它在运行时失败,并出现空参数不允许异常。我可以理解repeated不允许空消息。但是Int32Value是 WellKnownType,因此编译器可以根据需要生成特殊的 NullValue 类型。

这是 protobuf 中的限制(不允许Int32Valuein repeated)还是 C# 代码生成和支持库中的限制/错误?

除了创建自己的消息和代码生成之外,在 protobuf 协议中执行可空 int 数组的选项还有哪些?

c# protocol-buffers protobuf-csharp-port protobuf-3

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

是否可以阻止LOB UWP桌面应用程序/后台任务中的挂起?

我的任务是将一个LOB桌面应用程序从.NET 4.5.2移植到Windows 10 UWP.在正常的Win32应用程序中,应用程序会运行,直到用户关闭应用程序(服务和应用程序).但在阅读UWP应用程序时,我发现所有文档都说没有办法阻止应用程序暂停(只是临时或超过配额).我在移动设备/平板电脑上理解这一点,但在具有性能和功率的台式机上却没有.

这个问题的一个常见答案是使用"真实"服务器(通常是Web服务器).但我们的应用程序用于没有互联网的领域.所以我们需要服务器/服务在台式机上运行.

到目前为止,我找到的最佳选择是一个UWP应用程序,内置后台任务要求延期.但据我所知,这仍然无法保证暂停.只有一些模糊的信息"你可能不会被暂停,因为它是一台在全球池中拥有大量资源的台式机"......

我不喜欢将.NET中的LOB服务应用程序和UWP中的客户端保留在一起,因为它们共享许多无法在.NET和UWP之间重用的代码.

那么,任何有明确答案/参考的人都可以阻止在Win10台式机上运行的服务式UWP应用/任务暂停?

windows service uwp

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

如何在 Blazor/razor 文件中添加 SVG &lt;text&gt;

我有一个生成 SVG 图像的 Blazor 应用程序 (.Net 3.1 Core)。它像任何其他 HTML 一样使用 razor/Blazor 语法生成。问题出在生成 SVG<text>元素时。我努力了

<text x="0">Some text</text>
Run Code Online (Sandbox Code Playgroud)

这会导致语法无效,因为在 razor 文件中很特殊。我也尝试过

@:<text x="0">Some text</text>
Run Code Online (Sandbox Code Playgroud)

这是 razor 接受的,但这会导致标签被删除并且属性呈现为普通文本而不是 SVG 标签。

如何用<text>razor 语法编写 SVG 元素?我不想恢复到 C# 和 HtmlString 等。

更新:这里缺少的关键点是我在 @foreach 中使用了它,我首先认为这不相关。

razor-pages blazor

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

C#中的显式结构需要double init值

以下C#结构用于表示颜色分量和32位颜色值本身的并集.问题是编译器给出了错误:

错误CS0171在将控制权返回给调用者之前,必须完全分配字段'Color.ARGB'

是否可以在不初始化数据两次的情况下消除此错误?这是C#的预期行为吗?如果我初始化两次,JIT会检测到双初始化并且只执行第二次初始化吗?

[StructLayout(LayoutKind.Explicit)]
public struct Color
{
    public Color(byte r, byte g, byte b, byte a = 0xff)
    {
        ARGB = 0; // The init I shouldn't have to do
        A = a;
        R = r;
        G = g;
        B = b;
    }

    [FieldOffset(0)]
    public byte B;
    [FieldOffset(1)]
    public byte G;
    [FieldOffset(2)]
    public byte R;
    [FieldOffset(3)]
    public byte A;
    [FieldOffset(0)]
    public uint ARGB;

    public static readonly Color Red = new Color(255, 0, 0);
    public static readonly Color Green = …
Run Code Online (Sandbox Code Playgroud)

c#

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