小编Chr*_*ris的帖子

如何在 ng-container 中定义变量?

在基于 Angular 12 的 Web 应用程序的另一个组件中,我已经使用ng-containerwith*ngFor来迭代数组并显示数组中每个项目的控件,如下所示:

<ng-container *ngFor="let parameter of parameters">
    ....
</ng-container>
Run Code Online (Sandbox Code Playgroud)

现在我需要做几乎相同的事情,但不需要迭代任何东西。我只是想要一个定义了变量的容器,然后我可以在容器内使用该变量。我已经尝试使用*ngVar代替,*ngFor但后来出现此错误:

无法绑定到“ngVar”,因为它不是“ng-container”的已知属性。

我怎样才能像我已经对单个变量所做的那样做同样的事情*ngFor而不迭代任何东西?我不想使用 a,div因为我不希望容器元素在渲染后实际存在于我的应用程序的 HTML 中。我认为有一个简单的解决方案,但到目前为止我还没有找到它。

以下是我想如何使用此功能:

<ng-container
  *ngFor="let parameterColumn of parameterColumns"
  matColumnDef="{{ parameterColumn }}"
>
  <th mat-header-cell *matHeaderCellDef>
    {{ parameterColumn }}
  </th>
  <td mat-cell *matCellDef="let element">
    <ng-container variable="parameter = getParameterById(element, parameterColumn)">
      ...
    </ng-container>
  </td>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

html angular angular12

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

无法确定匿名类型的 JSON 对象类型

我正在尝试创建一个 JSON 对象,转换为字符串时应如下所示:

{
    "ts":1634712287000,
    "values":{
        "temperature":26,
        "humidity":87
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我尝试通过创建一个来做到这一点的方法Newtonsoft.Json.Linq.JObject

new JObject(new
{
    Ts = 1634712287000,
    Values = new JObject(new
    {
        Temperature = 26,
        Humidity = 87
    }),
});
Run Code Online (Sandbox Code Playgroud)

使用此代码我收到以下错误:

Could not determine JSON object type for type <>f__AnonymousType2`2[System.Int32,System.Int32]."}   System.ArgumentException
Run Code Online (Sandbox Code Playgroud)

我显然做错了什么,但我不知道如何正确地做到这一点。JObject我做错了什么以及如何通过代码在上面的示例中创建类似的内容?

.net c# json

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

Bootstrap:用于动态编辑数据的模式对话框

这个问题可能是重复的,但我不知道有什么好的关键词可以搜索来找到我正在寻找的解决方案。

我正在开发一个向用户显示表格的网站。该表的一列包含用户可以编辑的注释。为此,我为该列中的每一行添加了一个按钮,以打开引导模式对话框,用户可以在其中编辑与特定行关联的注释。我还有一个 JavaScript 函数“saveNote(recordId)”,它从模式对话框中的输入字段读取输入的文本,然后通过 ajax post 将其发送到服务器。

现在我的问题是:如何以及在哪里存储当前正在编辑的行的 id,以便我可以将其传递给 saveNote() 函数?我在引导文档中找到了一个示例,但仅涵盖将数据动态传递到模式对话框(变化的模式内容)。有没有通用的方法可以在模式对话框中执行此操作,或者我是否需要在 JavaScript 中使用全局变量?

javascript bootstrap-modal

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

反应式表单 - 使用禁用属性时发出警告

我想禁用其中一个表单中的选择框,而在从服务器返回该选择框的数据之前,其中没有任何内容可供选择。我需要这样做,因为选择框中显示的数据取决于另一个选择框中选择的内容。每当在另一个选择框中选择某些内容时,我需要从服务器加载相应的选项。要在没有可用数据的情况下禁用选择框,我使用了如下所示的禁用属性:

<mat-select formControlName="formId" [disabled]="formNames.length === 0">
  <mat-option
    *ngFor="let formName of formNames"
    [value]="formName.id"
  >
    {{ formName.formName }}
  </mat-option>
</mat-select>
Run Code Online (Sandbox Code Playgroud)

然后我订阅了valueChanges另一个选择框的事件,如下所示:

this.createForm.controls.formTypeId.valueChanges.subscribe((value: number) => {
  this.formsService.getFormNames(value).subscribe((formNames) => {
    this.formNames = formNames;
  });
});
Run Code Online (Sandbox Code Playgroud)

虽然这似乎工作得很好,但我不断在浏览器控制台中收到以下警告:

  It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true
  when you set up this control in your component class, the disabled attribute will actually be set in the DOM for
  you. We recommend using this approach …
Run Code Online (Sandbox Code Playgroud)

angular angular-reactive-forms angular12

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

如何在 C# 项目中使用天然气日?

天然气日定义为欧洲标准时间 24 小时的时间范围,从 UTC 5:00 开始,到次日 UTC 5:00 结束。在欧洲夏令时期间,它从 4:00 UTC 开始,到次日 4:00 UTC 结束(请参阅维基百科ACER了解英文解释)。

我需要在应用程序中使用天然气日才能执行以下操作:

  1. 获取任何给定 UTC 时间戳的当前天然气日。示例:“2022-03-22 05:00:00”(UTC)应变为“2022-03-22 00:00:00”(汽油日)。
  2. 从特定汽油日添加和/或减去时间跨度(天、小时等)以获得新的时间戳,该时间戳也考虑了 DST。例如,这意味着如果我从时间戳“2022-03-29 04:00:00”(UTC)(等于汽油日“2022-03-29”)中减去 7 天,我想获得时间戳“ 2022 年 3 月 22 日 05:00:00”(世界标准时间)。

在我看来,“加油日”应该像时区一样可用,然后我可以在我的应用程序中使用它,但尝试使用DateTimeDateTimeOffset让我完全不知道我应该做什么这项工作。

谁能指出我必须做什么才能进行上面解释的计算的正确方向?是否有一个库可以让这件事变得更容易一些?例如,我已经研究过NodaTime,但我在其文档中找不到任何可以让我更轻松地解决此任务的内容。

c# timezone datetime datetimeoffset nodatime

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

通过CTE使用INSERT

对于稍微复杂的SQL脚本,我需要以下映射:

WITH days_mapping AS (SELECT 1 AS day
UNION ALL
SELECT 2 AS day
UNION ALL
...
SELECT 31 AS day)
Run Code Online (Sandbox Code Playgroud)

有什么方法可以创建相同的映射,但是无需手动为该映射中的每个数字/天手动编写SELECT和UNION ALL?我当时想在WHILE循环中执行INSERT而不是SELECT,但是我不知道如何或是否有可能使用通用表表达式来执行此操作。

sql sql-server common-table-expression

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