2016-07-29 6 views
0

Ich habe eine Multiselect-Anweisung mit Autovervollständigungs-Anweisung erstellt, die die ausgewählte Liste dem ng-Modell der Direktive zuordnet. Ich möchte einen einzelnen Feldwert aus dem ng-Modell erhalten und diesen einem anderen ng-Modell zuordnen. Das kann ich nicht. Wenn ich den ganzen ng-Modellwert übergebe und einem anderen ng-Modell zuweise, funktioniert es gut, aber mit einem einzelnen Feldwert funktioniert es nicht.Weisen Sie den Wert von einem ng-Modell einem anderen in angularjs zu.

Bitte den Link zum Fiedler für den Code finden -

https://jsfiddle.net/719x1rbs/11/l

<div ng-controller="TestCtrl"> 


    <typeahead data-ng-model="selecteds" ng-change="emailId=selecteds.email" items="contacts" displaytag="name" displayitem="name"> 
    </typeahead> 
    <input type="hidden" ng-model="emailId" /> 
    {{emailId}} 
    </div> 

Ich bin nicht in der Lage, den Code in Geige, aber seinen Lauf Code in meinem System laufen zu lassen.

Kann mir bitte jemand helfen, wie ich ein Feld in einem ng-Modell an ein anderes ng-Modell übergeben kann. In der {{emailId}} sollte ich den Wert '@ pacman.com' erhalten.

+0

bieten etwas mehr Ausarbeitung, was Sie wollen und wo es die Änderungen widerspiegelt. @sonam – Viplock

+0

Im ng-Modell, das an die Direktive angehängt ist, bekomme ich die Werte als Array. Im Backend möchte ich nicht das komplette Array der ausgewählten Objekte senden. Ich möchte einfach wie im obigen Beispiel die emailId senden, also nehme ich eine versteckte Variable und mappe den ng-Modellwert der Direktive auf diese versteckte Variable ng-model onchange, aber es funktioniert nicht. Ich möchte den Wert im Backend als {'[email protected]', '[email protected]', '[email protected]'} übergeben. Ich habe auch den Fiddler-Code für das gleiche beigefügt. – Sonam

+0

Ok, ich habe es, für eine Sache möchte ich dich korrigieren, es ist nicht "Geiger" sein "Geige" Geiger ist ein anderes Werkzeug. – Viplock

Antwort

0

Eigentlich ist das Problem mit Ihrem Code, möchten Sie E-Mail-ID aus den ausgewählten Artikel zu bekommen, von selecteds.email zu tun, aber selecteds ist kein Objekt mit Eigenschafts email sein ein Array von ausgewählten Objekten. Daher sollten Sie die Zweiweg-Bindungseigenschaft von Angular verwenden und direkt das selecteds Array des Objekts verwenden und es iterieren, um das separate Array von E-Mail-IDs zu erhalten. Bei einem bestimmten Ereignis. Denn in Ihrem Fall ng-change Ereignis wird nicht jedes Mal Feuer Wert von Model wird sich ändern, weil es eine benutzerdefinierte Richtlinie können Sie gehen durch Question/Answer. So stellen Sie sicher, dass Sie ein passendes Ereignis für Ihre Bedürfnisse feuern.

Verwandte Themen