gpt4 book ai didi

Angular 属性指令表单输入

转载 作者:行者123 更新时间:2023-12-03 23:59:47 25 4
gpt4 key购买 nike

我正在努力让@Directive 按预期工作。

我希望 Attr 指令能够访问指令构造函数中的 model.password 并使用当前密码设置变量 varpassword。

我还希望能够检索表单字段中的所有其他输入,我将如何处理?

自从我知道处于 Beta 版以来,其中很多的文档并不完整。

几天来,我一直试图解决这个问题,但收效甚微。我已经删除了我试图让它工作的导入,因为我想我很困惑如何在我尝试过的指令中正确使用它们“NgModel,NgControl,ControlGroup,NgFormModel,FormBuilder ...”。

我的测试示例代码如下。

登录-form.html

<form #testForm="ngForm">
Email Address:
<input type="text" name="username" size="50" required="required" [(ngModel)]="model.username" ngControl="username" #username="ngForm" />

Password:
<input type="password" name="password" size="20" required="required" [(ngModel)]="model.password" ngControl="password" #password="ngForm" testdir />

<input type="submit" value="Login" />
</form>

应用程序.ts
import {Component} from 'angular2/core';

import {TestDirective} from '../../directives/test.directive';

@Component({
selector: 'test-app',
templateUrl: 'login-form.html',
directives: [TestDirective]
})
export class TestApp {}

test.directive.ts
import {Directive} from 'angular2/core';

@Directive({
selector: '[testdir]',
host: {
'(keydown)': 'run()'
}
})
export class TestDirective {

varpassword: string;

constructor() {
this.varpassword = [******]
}

run() {
console.log( this.varpassword );
}

}

如果有人能指出我正确的方向,将不胜感激。

最佳答案

你需要注入(inject)NgControl进入你的指令:

@Directive({
(...)
})
export class TestDirective {
varpassword: string;

constructor(private ctrl:NgControl) {
}

ngOnInit() {
this.varpassword = this.ctrl.value;
}
}

看这个plunkr: https://plnkr.co/edit/3y4Qf7M4hb3zDIEJ773Q?p=preview .

关于Angular 属性指令表单输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36768235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com