0
목표 : 드롭 다운 선택에 따라 값 모음을 가져 와서 숨겨진 입력 필드에 배치하여 내 모델에 포함시킵니다.편도 바인딩 angle2를 사용하여 입력 필드에 값이 표시되지 않습니다.
상대 HTML : 내가 선택한 foo에 대한 데이터를 얻을 수 onSelect를라는 함수를 호출 위의 코드에서
<select class="selectFoo" (change)="onSelect($event.target.value)" name="FooName" ngModel>
<option selected="selected">--Select--</option>
<option *ngFor="let foo of foos" [value]="foo.ID">{{foo.Name}}
</option>
</select>
<input type="hidden" [value]="fooAddress" name="FooAddress" ngModel/>
. 웹 서비스 호출을 사용하여 정보를 채 웁니다. 다음은 내 TS 파일의 스 니펫입니다.
import { Component, OnInit } from '@angular/core';
import { Foo } from './model';
import { DataService } from './data.service';
@Component({
moduleId: module.id,
selector: 'add-on',
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
foos : Foo[];
selectedFoo: Foo;
fooAddress: string;
onSelect(fooID){
this.selectedFoo = null;
for(var i = 0; i < this.foos.length; i++)
{
console.log(this.foos[i].ID);
if(this.foos[i].ID == fooID){
this.selectedFoo = this.foos[i];
this.fooAddress = this.selectedFoo.Address.toString();
}
}
}
}
내 모델에서 사용할 수 있도록 값을 채우려면 어떻게해야합니까? 다른 것을 제공해야하는지 알려주세요.
감사합니다.
다음<select name="FooName" [(ngModel)]="selectedFoo">
<option>--Select--</option>
<option *ngFor="let foo of foos" [ngValue]="foo" >{{foo.Name}}</option>
</select>
<input type="hidden" [value]="selectedFoo?.Address" name="FooAddress" />
//Assuming your 'foo' items are e.g. { ID: 1, Name: 'Hello', Address: '123 Hello St'}
당신이 오히려을 처리하기 위해 필요한 것보다, 직접 숨겨진 입력 필드에 selectedFoo
의 Address
속성을 바인딩 할 수 있습니다 :
정말 대단합니다! 고맙습니다. 나는 formgroup을 사용하여 이것을 해결했다. 그런 식으로 숨겨진 필드를 만들 필요가 없으며 모델을 자유롭게 채울 수 있습니다. 그것은 친구의 제안을 기반으로했습니다. 이 게시물과 관련이있는 방법이 있다는 것을 알고 싶었습니다. 고마워! –
위대함, 걱정할 필요가 없습니다. 왜 네가 숨겨진 입력 필드가 필요한지 확신 할 수 없었습니다. 필자는 필자가 앵귤러 폼과 관련된 최근의 작업에서 사용하지 않았습니다. 어쨌든 당신이 일하는 것을 기쁘게 생각합니다! –