#varName在angular2中返回undefined undefined

时间:2016-09-23 09:45:35

标签: angular

我正在尝试访问输入字段的值。 这是示例代码

<div>
    Test <input #test1 type="number" [value]='somevalue'/>
</div>
<div *ngIf='some-condition'>
    Test <input #test2 type="number" [value]='somevalue'/>
</div>

<span (click)="testData(test1,test2)">test<span>

Angular Code

testData(testa,testD)
{
    Console.log(testa);
    Console.log(testD);
} 

在上面的代码中,第一个div工作正常,但我试图在第二个div中做同样的事情。它给了我不确定的价值。我知道错过了什么。

如果条件是假的,那么它给我的undefined很好,但是当条件为真时,它也给了我未定义的值。

2 个答案:

答案 0 :(得分:0)

试试这个: -

var accounts = new List<Account>();
var context = new YourDbContext();
context.Configuration.AutoDetectChangesEnabled = false;

foreach (var account in apiData)
{
    accounts.Add(account);
    if (accounts.Count % 1000 == 0) 
    // Play with this number to see what works best
    {
        context.Set<Account>().AddRange(accounts);
        accounts = new List<Account>();
        context.ChangeTracker.DetectChanges();
        context.SaveChanges();
        context?.Dispose();
        context = new YourDbContext();
    }
}

context.Set<Account>().AddRange(accounts);
context.ChangeTracker.DetectChanges();
context.SaveChanges();
context?.Dispose();

此处的工作示例<div> Test <input #test1 type="number" [value]='somevalue' (click)="testData(test1.value)"/> </div> <div *ngIf='some-condition'> Test <input #test2 type="number" [value]='somevalue' (click)="testData(test2.value)"/> </div> testData(testD) { Console.log(testD); } Working Example

答案 1 :(得分:-1)

您可以使用[hidden]而不是* ngIf。 在* ngIf中声明的变量不能在其外部使用。

<div>
Test <input #test1 type="number" [value]='somevalue'/>
</div>
<div [hidden] ='somecondition'>
Test <input #test2 type="number" [value]='somevalue'/>
</div>

<span (click)="testData(test1.value,test2.value)">test</span>

请参阅此链接以获取更多说明https://github.com/angular/angular/issues/6179