angularjs - passe les autres propriétés de l'objet sélectionné sur ng-change
Comment puis-je obtenir d'autres propriétés de chargé json dans la liste déroulante /ng-options
Sur ng-changement j'aime aussi passer de l'objet sélectionné campaignType.
Comment serais-je capable de le faire?
Mon point de Vue est à la recherche comme cette
<div ng-app>
<div ng-controller="cCtrl">
<select ng-model="campaign" ng-options="c.id as c.name for c in campaigns" ng-change="search2(c.campaignType)">
<option value="">-- choose campaign --</option>
</select>
</div>
</div>
Mon Contrôleur est à la recherche comme cette
function cCtrl($scope) {
$scope.campaigns = [{
"custID": 1,
"custName": "aaa ",
"msgID": 3,
"msgName": "Email Test Msg",
"id": 2,
"name": "Email Test Campaign",
"description": "Test Campaign",
"campaignType": "Email",
"created": "1374229715",
"isActive": 1,
"isDeleted": 0
}];
$scope.search2 = function (campaignType) {
alert(campaignType); //not working
alert($scope.campaign.campaignType); //not working
//console.log($scope.campaign.campaignType);
}
}
http://jsfiddle.net/webtheveloper/Qgmz7/8/
source d'informationauteur Developer
Vous devez vous connecter pour publier un commentaire.
Check this out: http://jsfiddle.net/Qgmz7/9/
Vous n'êtes pas dans un ngRepeat contexte. ngOptions œuvres totalement différentes.
ngModel sur un
<select>
obtenez la valeur de la<option>
pas l'ensemble de l'objet. Encore une fois, vous n'êtes pas à l'intérieur d'un ngRepeat, vous n'avez pas accès à vos objets.Pas besoin de passer la valeur en tant que paramètre, vous pouvez l'obtenir à partir d'
$scope
. Comme une question de fait, vous n'avez pas besoin ngChange soit, vous pouvez simplement$scope.$watch('campaign', ...)
Donc
Au lieu de passer dans une propriété, vous pouvez passer à l'objet sélectionné dans la fonction comme ceci
Travail De Démonstration
Vous pouvez également essayer de cette façon (Hack on peut dire),
Fondamentalement, ce que ce morceau de code est qu'il vient de passer ng-modèle avec l'ensemble de la liste déroulante pour
ng-change
.Ainsi, dans search2 Fonction, vous pouvez simplement recherche qu'
ng-model
valeur dans la liste et d'obtenir votre objet désiré.Violon pour référence : https://jsfiddle.net/vaibhavgavali92/7b7xdyzj/18/
Dans certains cas, comme par exemple pour afficher la valeur de membre correspondant de l'élément sélectionné ne nécessiterait pas un appel à la fonction de Contrôleur. Par exemple si vous souhaitez afficher le type de campagne correspondant à la campagne sélectionnée, elle peut être écrite comme suit.
...