seçeneği değerleri için nesneleri kullanarak. Her bir seçeneğin değerinin bir nesne olduğu bir Açısal formda bir seçim listesi oluşturmak istiyorum. Ayrıca, 2 yönlü veri bağlama kullanmak istemiyorum. Örneğin. Benim Bileşen bu alanları varsa:4 Açısal - Ben de benzer sorular sorulmuştur biliyorum, ama iyi bir cevap hiçbiri buldum bir seçim listesindeki
lUsers: any[] = [ { Name: 'Billy Williams', Gender: 'male' }, { Name: 'Sally Ride', Gender: 'female'} ]; curUser: any;
Bunu içerecek şekilde benim HTML şablonu istiyorum: Bu kod ile
<select #selectElem (change)="setNewUser(selectElem.value)"> <option *ngFor="let user of lUsers" [ngValue]="user"> {{user.Name}} </option> </select>
olsa da, benim setNewUser() fonksiyonu seçilen kullanıcının Adınızın içeriğiyle alır alan. Neden o belirli alanı seçiyor, hiçbir fikrim yok. Ne bekliyoruz o Özellikle bir kullanıcı nesnesine ayarlanmış seçilen seçeneğin "değer" alacağı olmasıdır. Bunun yerine seçeneğindeki değerin ngValue kullanılan
Not. Bu, SO üzerinde başkalarının önerisiyle oldu. Bunun yerine değer kullanırsanız ne olur nesne faydasız setNewUser() alır ne dize '[Nesne nesne]' e dönüştürülmüş olur olmasıdır.
Bilginize, ben @ açısal/cli 1.1.2 ile açısal 4.0.0 kullanarak Windows 10 üzerinde çalışıyorum. Tam olarak hem benim günlük kaydını kendisine bunu geçirilmediğini sadece ne belirleyen ve aynı zamanda şablonu bu dahil ediyorum
setNewUser(user: User): void { console.log(user); this.curUser = user; } // setNewUser()
: Burada setNewUser() yöntemidir <pre>{{curUser}}</pre>
OP kodları veya değerleri, değer niteliğiyle ilgilenmez. Cevabında neden bahsedildiğini bilmiyorum. Dahası, OP ngValue kullanmaya çalışır, bu yüzden değer değerine ne yapmaları gerektiğini açıklamak için bir açıklama eklemek yararlı olur (Daha iyi mi? OP bunu yanlış kullanır mı?) – zeroflagL