2017-02-21 76 views
0

有人有什么想法,为什么我可以在这里看到validpristine,但是className回来了吗?控件的.className不起作用Angular2

<label for="codeInput" class="control-label"> Fund Code:</label> 
<input #code="ngModel" id="codeInput" class="form-control" name="codeC" required [(ngModel)]="fund.code"> 
Info: ({{code.className}}) {{code.valid}}, {{code.pristine}}<br> 

enter image description here

+0

可以添加的'一个的console.log代码? – Ayyoub

+0

你期待什么'className'值? –

回答

2

的问题是局部变量code只是抓住一个参考ngModel指令,而不是输入的elementRefngModel有权访问validpristine属性,但无权访问className。您可以指定其他本地变量来获得一个参考input,这确实有className属性,像这样的ngModel参考:

<label for="codeInput" class="control-label"> Fund Code:</label> 
<input #code="ngModel" #codeInput id="codeInput" class="form-control" name="codeC" required [(ngModel)]="fund.code"> 
Info: ({{codeInput.className}}) {{code.valid}}, {{code.pristine}}<br> 

Demo

0
<label for="code" class="control-label"> Fund Code:</label> 
<input #code="ngModel" id="code" class="form-control" name="code" required  [(ngModel)]="fund.code"> 
Info: ({{code.className}}) {{code.valid}}, {{code.pristine}}<br> 

试试这个它会工作。与形式工作时

在角向需要为名称保持相同的名称= “代码”[(ngModel)] = “fund.code”#代码= “ngModel”id =“code”for =“code” for label。

如果它不起作用,请让我知道。

0

在您的代码中,模板变量#code指的是在输入元素上创建的ngModel实例,它是AbstractControlDirective的扩展。正如你在文档中看到的那样,它有一个validpristine属性。

这个类显然没有className属性。也许增加另一模板变量的输入就可以了(虽然我看不到你想要这个:)达到什么):

<input #input #code="ngModel" class="control" name="code" required [(ngModel)]="fund.code"> 
Info: ({{input.className}}) {{code.valid}}, {{code.pristine}} 
+0

这只是一门课的练习 - 我只是想知道为什么它不起作用。 – kpollock

+0

@kpollock啊,这很有道理! – PierreDuc