小编Lee*_*Lee的帖子

在Angular2的指令或组件中将@HostBinding和@HostListener作为条件

我有一个接受事件的指令:

<td calendarEvent [event]=event><td>

在指令中,我具有HostBinding用于根据事件添加类的,以及HostListener用于侦听mouseentermouseleave事件的。例如:

@HostBinding('class.all-day') get eventIsAllDay() {
  if (this.event) return this.event.is_all_day;
}
Run Code Online (Sandbox Code Playgroud)

许多<td>旨意具有undefined[event]输入。有没有一种方式HostBinding,并HostListener根据条件将被添加?在每次更改检测中,它都必须为每个<td>标签运行所有绑定和侦听器,即使没有事件也是如此。也许所需的计算能力可以忽略不计,但是我敢肯定一点点帮助,特别是对于移动设备。

angular2-directives angular2-components angular

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

Rails 中的 JSONB 查询包含哈希数组的键

我有一个 Rails 5 项目,其Page模型具有 JSONB 列content。所以结构看起来像这样(减少到问题的最低限度):

#<Page id: 46, content: {..., "media" => [{ "resource_id" => 143, "other_key" => "value", ...}, ...], ...}>
Run Code Online (Sandbox Code Playgroud)

我将如何编写一个查询来查找在 JSONB 列的键下具有resource_id某个所需数字的所有页面?这是我所做的尝试,但不起作用(我认为是因为数组的每个项目中还有其他键/值对): mediacontentPage.where("content -> 'media' @> ?", {resource_id: '143'}.to_json)

编辑:这有效,但只会检查媒体数组中的第一个哈希:Page.where("content -> 'media' -> 0 ->> 'resource_id' = ?", '143')

postgresql activerecord ruby-on-rails jsonb ruby-on-rails-5

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

将类型分配给 Maybe 类型的嵌套类型的属性

我正在尝试将工具生成的类型分配给属性graphql-codegen。我尝试分配的类型是嵌套类型。给定以下类型:

type SomeType = {
  someKey: Maybe<
    { __typename?: "OtherType" | undefined } & 
    { someNestedKey: ({ __typename?: "AnotherType" | undefined } & Pick<AnotherType, "prop1" | "prop2">)[] } 
  >
}
Run Code Online (Sandbox Code Playgroud)

我需要能够做到:

myProperty: SomeType['someKey']['someNestedKey'] = []
Run Code Online (Sandbox Code Playgroud)

然而,我遇到的问题是 的类型someKey是一种Maybe类型,因此 Typescript 抱怨该类型没有someNestedKey属性<Maybe { __typename?: "OtherType" | ...} & { someNestedKey: (...)[] }>(即 的类型someKey)。

在 Typescript 中,您可以使用该!方法来声明您确定知道与undefinedand/or联合的类型的属性值null实际上在这种情况下存在。在分配类型时有没有办法做类似的事情?

由于我使用该graphql-codegen工具,因此我无法控制这些类型。

typescript graphql typescript2.0 graphql-codegen

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