小编Ank*_*ngh的帖子

Angular2:错误 - 类型'AbstractControl'上不存在属性'updateValue'

我使用FormBuilder创建了一个ControlGroup .theForm

当我尝试更新这样的控件的值时

this.theForm.find('MainImageId').updateValue( id, true, true);

它工作正常,但WebStorm显示错误说

Error:(148, 24) TS2339: Property 'updateValue' does not exist on type 'AbstractControl'.

我究竟做错了什么?为什么它有效?

webstorm typescript angular

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

具有angular2函数的templateUrl

嗯...在角度1.xy是

angular.module('myApp', []).directive('myDirective', function(){
    return {
       templateUrl : function(tElement, iAttrs){
           return 'http://' + iAttrs.myDirective // More...
       } 
    }
});
Run Code Online (Sandbox Code Playgroud)

但是......在Angular2中

@Component({
    selector: 'my-Directive',
    templateUrl: 'http://???' 
})
class HelloWorld {
}
Run Code Online (Sandbox Code Playgroud)

好吧,在医生说只有一个String.因为它被处理为angular2中的函数?

templates function dynamic typescript angular

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

Angular2中唯一性的自定义验证器

我有一个Angular2表单字段.我想要求输入的值不存在.我的组件通过@Input参数接收现有值的数组.我的组件中有一个自定义验证器函数codeUnique(),但是当它被执行时,它无法访问实例成员."this"返回FormControl或undefined.我的验证器函数已被吸入外部空间,剥离了它的上下文和实例变量.如何将现有值列表添加到验证器中?我可以把它们放在全球范围内,恐怖吗?

import { Component, Input, Output, EventEmitter } from '@angular/core';
import { NG_VALIDATORS, FormControl, FormBuilder, FormGroup, Validators, AbstractControl } from '@angular/forms';

import { ReferringAppModel } from './referringapp.model';
//import { CodeValidator } from './code-validator';

@Component({
    selector: 'add-client-form',
    templateUrl: 'src/home/add-client-form.component.html'
})
export class AddClientFormComponent {
    myForm: FormGroup;
    code: AbstractControl;
    name: AbstractControl;

    constructor(fb: FormBuilder) {
        this.myForm = fb.group({
            'code': ['', this.codeUnique],
            'name': ['', Validators.required]
        });
        this.code = this.myForm.controls['code'];
        this.name = this.myForm.controls['name'];
    }
    @Input() referringApps: ReferringAppModel[];

    ngOnInit() {
    }
    onSubmit(form: any): void {
        console.log("submitted") …
Run Code Online (Sandbox Code Playgroud)

typescript angular

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

角2引用@ContentChild的动态实例

我正在使用Angular 2.0.1。

我有一个可以通过其他任何组件使用的组件<ng-content>-效果很好。

我遇到的问题是当我想引用注入的组件时。

如果我知道那<ng-content>将永远只是一个组件,我可以说: @ContentChild(MyComponent) dynamicTarget: IMyComponent;但是因为它可以是任何组件(我要做出的唯一假设是任何注入的组件都实现了特定的接口),所以变得棘手。

我也尝试过<ng-content #dynamicTarget'>,然后通过说来引用它, @ContentChild('dynamicTarget') dynamicTarget: IMyComponent;但这返回未定义。

有谁知道我该如何告诉Angular 2这个东西是组件的实例,以便我可以尝试在其上调用函数?

为了进一步阐明用例,我有一个多步骤向导,可以将任何组件作为内容,并且我想validate在内容上调用该函数(同样,我会假设在上述实例中存在该函数)

typescript angular2-ngcontent angular

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

在Angular2中使用ngFor的ngControl

Q1.是否有可能有一个控件,即:

ValidNumber = new Control('', CustomValidators.number({min:1, max:10}))
Run Code Online (Sandbox Code Playgroud)

验证input模板中所有类似的字段类型?

Q2.这些字段可以由ngFor?生成?


FailedMethod 1:验证有效但值已耦合.

<input [ngFormControl]="ValidNumber" name="num1" type="number"/>
<input [ngFormControl]="ValidNumber" name="num2" type="number"/>
Run Code Online (Sandbox Code Playgroud)

FailedMethod 2:使用formBuilder,它与上面相同.

<form [ngFormModel]="formBuiltWithFormBuilder">
  <input ngControl="ValidNumber" name="num1" type="number"/>
  <input ngControl="ValidNumber" name="num2" type="number"/>
</from>
Run Code Online (Sandbox Code Playgroud)

客观澄清:

  • 我正在尝试验证可能使用ngFor生成的表单字段,并且需要类似的验证.

  • 没有在别处重复定义类似的控件

  • 我可以使用任何其他方法提取的值,#form="ngForm"或者ngModel,我想要的ngControl是验证.

typescript angular2-forms angular

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

Angular2:ElementRef nativeElement vs querySelector性能

有时我必须去DOM event listners,从那以后

我比较熟悉,querySelector我可以更轻松地使用它.

但我想知道提供什么ElementRef以及哪一个更好.

angular

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

TypeScript:在构造函数内部和外部声明变量有什么区别?

假设我有一个用 TypeScript 编写的类,如下所示:

class Messenger { 
    x = 10;
    constructor(){
      this.y = 20;
    }
};
Run Code Online (Sandbox Code Playgroud)

JavaScript 版本将如下所示:

var Messenger = (function () {
    function Messenger() {
        this.x = 10;
        this.y = 20;
    }
    return Messenger;
}());
;
Run Code Online (Sandbox Code Playgroud)

x 和 y 变量在 JavaScript 中被编译为相同的东西,那么这里有什么区别呢?

谢谢。

javascript typescript

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

Angular2 ControlGroup valueChanges初始绑定

我有一个带有一些<input type="text">小部件的表单,我注意到ControlGroup.valueChanges在使用[ngFormModel]和时正在调用初始数据绑定ngControl.

这意味着用户认为表单在初始加载时已更改.

这是正常的还是我应该使用不同的observable来跟踪用户所做的更改?

我正在使用Angular2 RC3和以下版本导入表单:

import {ControlGroup, Validators, FormBuilder} from '@angular/common';
Run Code Online (Sandbox Code Playgroud)

forms observable typescript angular

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

Anglarjs2 - Http get request:错误:无法解析url ..原始错误:无法在[null]中读取未定义的属性'split'

当我在Hero.service.ts中使用get url作为web api时,在浏览器控制台中出现以下错误.但是当我在一个项目中使用.Json文件时它工作正常,因为我能够在输出页面中看到值.我刚刚在angular.io网站上学习.

以下是控制台中的错误:

angular2-polyfills.js:471 Error: Uncaught (in promise): EXCEPTION: Error: unable to parse url 'http://md5.jsontest.com/?text=example_text'; original error: Cannot read property 'split' of undefined in [null](…)consoleError @ angular2-polyfills.js:471

Get url: http://md5.jsontest.com/?text=example_text
Run Code Online (Sandbox Code Playgroud)

这是完整的代码,

Plunker

你能帮我解决一下我在做错的事吗?

http-get angular

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