小编mon*_*oh_的帖子

Typescript async/await不会更新AngularJS视图

我正在使用Typescript 2.1(开发人员版本)将async/await转换为ES5.

我注意到在我更改了在异步函数中绑定查看的任何属性后,视图不会使用当前值更新,所以每次我必须在函数结束时调用$ scope.$ apply().

示例异步代码:

async testAsync() {
     await this.$timeout(2000);
     this.text = "Changed";
     //$scope.$apply(); <-- would like to omit this
}
Run Code Online (Sandbox Code Playgroud)

此后text,视图中不会显示新值.

是否有任何解决方法,所以我不必每次手动调用$ scope.$ apply()?

angularjs typescript angularjs-scope

26
推荐指数
4
解决办法
7205
查看次数

实体框架6延迟加载不起作用

我创建了两个模型类:StudentExam.

学生:

class Student
{
    [Key]
    public int StudentId { get; set; }

    [Required, MaxLength(30)]
    public string FirstName { get; set; }

    [Required, MaxLength(50)]
    public string LastName { get; set; }

    [Required]
    public DateTime BirthDate { get; set; }

    public virtual ICollection<Exam> Exams { get; set; } 
}
Run Code Online (Sandbox Code Playgroud)

考试:

public enum Grade
{
    A, B, C, D, E, F
}
class Exam
{
    [Key]
    public int ExamId { get; set; }

    [Required]
    public Grade Grade { …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-6

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

使用ASP.NET Core的SignalR不使用websockets但使用长轮询

我刚刚使用ASP.NET Core和SignalR进行了简单的测试(我使用的是这个版本 - 0.1.0-rtm-21431 - https://www.myget.org/feed/aspnetmaster/package/nuget/Microsoft.AspNetCore.SignalR .Server - 猜测它是.NET Core支持的最新版本,但是当我错误地纠正我时)并注意到它正在使用长轮询(我使用Charles嗅探了http请求).

我使用SignalR 2.2.1对ASP.NET 4.6.1进行了相同的测试 - https://www.nuget.org/packages/Microsoft.AspNet.SignalR/并且它使用了WebSockets.

我注意到,通过长轮询我的测试应用程序显然较慢,有时客户端之间存在差异.

知道为什么SignalR for AspNetCore不使用WebSockets而是长轮询吗?是我的配置错误还是SignalR for .NET Core不支持websockets?

c# asp.net signalr asp.net-core

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

使用 TAP 的 WebClient 进度报告

我想知道是否有一种方法可以在不使用 EAP(基于事件的异步模式)的情况下报告 WebClient 进度。旧方式(使用 EAP)将是:

var client = new WebClient();
client.DownloadProgressChanged += (s,e) => { //progress reporting }
client.DownloadFileCompleted += (s,e) => { Console.Write("download finished" }
client.DownloadFileAsync(file);
Run Code Online (Sandbox Code Playgroud)

使用 async/await 可以写成:

var client = new WebClient();
client.DownloadProgressChanged += (s,e) => { //progress reporting }
await client.DownloadFileTaskAsync(file);
Console.Write("downlaod finished");
Run Code Online (Sandbox Code Playgroud)

但是在第二个示例中,我同时使用了 EAP 和 TAP(基于任务的异步模式)。混合两种异步模式不是被认为是一种不好的做法吗?

有没有办法在不使用 EAP 的情况下实现相同的目标?我已经阅读了IProgress接口,但我认为没有办法使用它来报告 WebClient 进度。

c# webclient async-await

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