我觉得问这个有点尴尬,但我确定我错过了一些东西。花了很多年的时间寻找/研究,但只提出需要主题或行为主题或通过合并映射等管道的复杂和令人费解的解决方案。
我正在从组件 HTML 模板中的命令式 HTTP 可观察方法(手动订阅)转向反应式 HTTP 可观察方法(observable$ | async)。
当页面初始化时,让它与异步管道一起工作没有问题。
但是,“即时”刷新模板的最佳方法是什么,即我知道我已将一条记录插入到基础数据库中并希望将其反映在我的模板中。
使用命令式方法,我可以简单地再次订阅(例如从单击处理程序)并将结果重新分配给与 ngfor 指令关联的属性,并且更改检测将触发并更新 DOM。
我想出的唯一解决方案是简单地再次从服务中获取 observable,这会触发更改检测。
只是为了让这里更清楚的是代码的发挥(非常简单只是专注于解决方案)。
必须有一个简单的解决方案吗?
<div *ngIf="(model$ | async)?.length > 0" class="card mb-3 shadow">
<div class="card-header">Actions Notes</div>
<div class="card-body">
<mat-list *ngFor="let action of model$ | async">
<div class="small">
<strong>
{{action.createdDate | date:'dd/MM/yyyy HH:mm'}}
{{action.createdBy}}
</strong>
</div>
<div>{{action.notes}}</div>
</mat-list>
</div>
</div>
<button (click)="onClick()">name</button>
Run Code Online (Sandbox Code Playgroud)
model$: Observable<any>;
constructor(
private changeTransferActionsService: ChangeTransferActionsService
) {}
ngOnInit(): void {
this.getObservable();
}
private getObservable(): void {
this.model$ = this.changeTransferActionsService
.getActionsWithNotesById(this.model.id)
.pipe(
map((x) …
Run Code Online (Sandbox Code Playgroud) 我们有一个安装了英语(美国)语言的 SQL Server 2008R2 实例。SSMS > 实例 > 属性 > 常规。
我们使用默认语言“英式英语”设置了登录。SSMS > 安全 > 登录 > 用户 > 属性。
前端 .NET Core 应用程序通过表单/Web API 生成插入语句 (EF),它使用上面设置的登录创建“sp_executesql”系统存储过程。
使用 SQL Server Profiler,我可以看到生成的插入 SQL 包含格式'yyyy-mm-dd'.
为例如的字符串日期"2019-01-15 10:59:19.410"
。
在执行该语句之前,有一个 exec sp_reset_connection 后跟以下 SET 语句(我相信这与连接池共享有关,以确保每次登录的正确设置)。
-- network protocol: LPC
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language British
set dateformat …
Run Code Online (Sandbox Code Playgroud) 在 Visual Studio Code 中远程开发 Angular 项目(使用远程 WSL 和/或远程容器)时,该命令ng build --watch
似乎不起作用(检测文件更改)。
这是一个已知问题吗?有什么解决方法吗?