小编Cec*_*Cec的帖子

角度5模板形式检测形式有效性状态的变化

活性形式,以去具有可以聆听到它包含并执行一些成分,它的方法形式的有效性状态变化的组件的方式吗?

使用templateRef就可以很容易地禁用模板中的提交按钮[disabled]="#myForm.invalid",但这不涉及组件的逻辑.

模板表单'doc我没找到方法

forms angular angular-reactive-forms angular-forms angular5

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

JBuilder + OJ慢json渲染

我正在向json渲染一系列记录和他们急切加载的关联.

运用

ObjectSpace.each_object(ActiveRecord::Base) {|x| 1+1}
Run Code Online (Sandbox Code Playgroud)

我得到165个实例,因此我的jbuilder视图需要1秒才能将165条记录渲染到69K的json中.

我已经在使用OJ作为JSON后端了.

我对rails和json渲染性能没有任何经验.

我想知道这种速度是否是预期的性能,我几乎不相信,或者问题出在我的jbuilder视图中,因此解决方案就在我的道路上.

编辑:

使用yajl比使用oj需要几毫秒.第一次,渲染需要1秒,而下一次请求需要大约0.5秒(我猜jbuilder默认情况下自己做一些缓存).

然而0.5s对我来说太过分了,因为索引请求将涉及超过165条记录.

performance json ruby-on-rails ruby-on-rails-3.2

6
推荐指数
0
解决办法
1890
查看次数

Angular 5-将组件的名称实例化为字符串

我知道如何使用 ComponentFactoryResolver.resolveComponentFactory(AComponentType)

但该方法需要a Type,而在我的代码中,该类型的名称为a string

在Angular API中,有没有一种方法可以解决string?如果没有,如何Type在TypeScript中将字符串转换为?

万一以上都不可行,我将求助于地图,但它并不是那么简单,因为我需要实例化的组件将来自远程获取的UMD角度组件库。

components typescript umd angular angular5

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

使用 AoT 的 Angular 5 动态模板

感谢 这篇非常有见地的文章,我能够使用从端点获取的动态模板动态创建组件,但是这些组件是使用 RuntimeCompiler 在运行时编译的,在使用 AoT 编译(又称生产时)时会禁用该编译器。

有人知道适用于 AoT 的类似解决方案吗?

我的要求是:

  • 在运行时获取组件的模板
  • 将来自端点的一些数据存储到组件的属性中
  • 让 Angular 解析模板,尤其是在包含来自端点的数据的属性上工作的包含的绑定

dynamic-compilation angular angular5

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

type为参数的typescript方法

鉴于此课程的层次性

export class A {
  static m() { return 'a'};
}


export class B extends A {
  static m() { return 'b'};
}


export class C extends A {
  static m() { return 'c'};
}
Run Code Online (Sandbox Code Playgroud)

我需要一个方法,取一个类(不是实例)扩展A并调用m()数组的每个元素:

function looper(classes: A[]) {
  classes.forEach(c => c.m());
}
Run Code Online (Sandbox Code Playgroud)

这需要A或其子类的实例数组.

我怎样才能有一个方法作为扩展A的参数类?

@Oscar Paz指出泛型

编辑1

此外,looper的输入需要存储在对象的属性中:

export class Container {
  public klazzes: A[];
}
Run Code Online (Sandbox Code Playgroud)

一世

class typescript

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

Java 8 DateTimeFormatter解析可选部分

我需要将日期时间解析为两种不同格式的字符串:

  • 19861221235959Z
  • 1986-12-21T23:59:59Z

以下dateTimematmat模式正确解析第一种日期字符串

DateTimeFormatter.ofPattern ("uuuuMMddHHmmss[,S][.S]X")
Run Code Online (Sandbox Code Playgroud)

但是第二个失败,因为没有预期破折号,冒号和T.

我的尝试是使用如下可选部分:

DateTimeFormatter.ofPattern ("uuuu[-]MM[-]dd['T']HH[:]mm[:]ss[,S][.S]X")
Run Code Online (Sandbox Code Playgroud)

出乎意料的是,这解析了第二种日期字符串(带有破折号的日期字符串),但不是第一种,抛出一个

java.time.format.DateTimeParseException: Text '19861221235959Z' could not be parsed at index 0
Run Code Online (Sandbox Code Playgroud)

就像可选部分没有被评估为可选部分一样......

java date-parsing java-8 java-time

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

angular 5嵌套表单子组件

我有一系列表单(每个表单由1个组件管理).

这些表单中有一种输入模式(例如,其中许多都需要允许输入地址),我必须重构为可重用的组件,因为它们以多种形式使用,我不想复制它们的逻辑也不是他们的模板

每个可重用的组件都必须这样做

  1. 有它的逻辑
  2. 它的模板包含输入标签而没有<form>标签
  3. 有其客户端验证限制
  4. 可能从其父级接收初始值
  5. 能够将其字段的值作为对象返回到父对象(例如address: {street: "...", "city": "...", ...})
  6. 如果不满足其验证约束,则使父表单无效
  7. 一旦用户更改了其值,就使其"触摸"

本教程为Angular2,我在了解如何实现目标1,24.

本教程中的解决方案还允许实现其他目标,但它通过从父级执行所有操作来实现(请参阅参考资料app.component.ts#initAddress).

我怎样才能实现3,5,67,而孩子中声明控件和它们的约束?

nested-forms angular-validation angular angular-forms angular5

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

rxjs可观察的重用逻辑

我正在编写一个有角度的文件上传组件。

成功上传后,它会显示一个通知和两个按钮:

  • replace :删除上传的文件并打开文件选择器对话框
  • remove :删除上传的文件并显示通知

删除上载的文件意味着向后端系统发出HTTP DELETE请求并处理可​​能的失败和重试。

_handleReplace() {
  this.replaceClicked$.pipe(
    tap((x) => this._backend.delete(this.file, this.fieldName)),
    tap((x) => openFileSelectorDialog())
  );
}

_handleRemove() {
  this.replaceClicked$.pipe(
    tap((x) => this._backend.delete(this.file, this.fieldName)),
    tap((x) => displayNotice())
  );
}
Run Code Online (Sandbox Code Playgroud)

在此代码段中,我不会处理可能的失败和重试。

如何提取删除逻辑以避免在两种方法中重复进行?

或更笼统地说,如何将常见的变换应用于两个不同的可观察对象?

谢谢!

rxjs angular

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

RailsAdmin 自定义控制器

我正在编写一个继承自 RailsAdmin::MainController 的自定义 rails_admin 控制器(Backend::ImagesController)。

我按照此答案中的步骤操作,但是当我的视图使用路由助手 backend_image_path(@image) 时,出现 undefined_method 错误。

控制器在controllers/backend/images_controller.rb 下定义为:

module Backend
  class ImagesController < RailsAdmin::MainController
    #layout 'rails_admin/cropper'

    skip_before_filter :get_model
    skip_before_filter :get_object
    skip_before_filter :check_for_cancel

    .... the various actions ....
Run Code Online (Sandbox Code Playgroud)

我的路线定义为:

namespace 'backend' do
  resources :images do
    member do
      get :cropper
      post :crop
    end
  end
end

mount RailsAdmin::Engine => '/backend', :as => 'rails_admin'
Run Code Online (Sandbox Code Playgroud)

rake 路由的输出是我所期望的:

backend_image GET  /backend/images/:id(.:format) backend/images#show {:protocol=>"https://"}
Run Code Online (Sandbox Code Playgroud)

最后,从 rails 控制台:

app.backend_image_path(id: 10)
=> "/backend/images/10"
Run Code Online (Sandbox Code Playgroud)

这个控制器运行完美,直到我试图通过扩展 RailsAdmin::MainController 将它集成到 RA 中

我不知道为什么不能再从控制器访问 route_helper....

rails-admin ruby-on-rails-3.2

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