2014-11-09 4 views
5

Ich bin neu in angularjs.I will arbeiten, um den Radiobutton Wert holen, wenn der Benutzer auf eine Schaltfläche klicken, aber mein Pech sein nicht working.Here ist der CodeErster Wert Optionsfeld, wenn die Schaltfläche geklickt wird, wird nicht AngularJS

<label class="item item-radio"> 
    <input type="radio" name="group" ng-model="user.answer" value="{{questions.quiz_ans_opt1}}"> 
    <div class="item-content item-body">a) {{questions.quiz_ans_opt1}}</div><i class="radio-icon ion-checkmark"></i> 
</label> 
<label class="item item-radio item-body"> 
    <input type="radio" name="group" ng-model="user.answer" value="{{questions.quiz_ans_opt2}}"> 
    <div class="item-content item-body">b) {{questions.quiz_ans_opt2}}</div><i class="radio-icon ion-checkmark"></i> 
</label> 
<button class="button button-balanced button-block" ng-click="submitAnswer(user)">Submit</button> 

Hier Controller

$scope.submitAnswer = function(user) { 
    //it output undefined error 
    alert(user); 
} 

auch möchte ich die Taste deaktivieren, bis ein Optionsfeld aktiviert ist, wie ich diese achive kann?

+0

Können Sie eine Plunkr mit Ihrem Problem erstellen? –

Antwort

1

haben Sie einen Blick auf diese,

die Sie interessieren,

In html,

<body ng-controller="MainCtrl"> 
    <p>Hello {{name}}!</p> 
    <input type="radio" ng-model="user.answer" ng-value="'option a'"> 
    <label>option a</label> 
    <br> 
    <input type="radio" ng-model="user.answer" ng-value="'option b'"> 
    <label>option b</label> 
    <br> 
    <input type="radio" ng-model="user.answer" ng-value="'option c'"> 
    <label>option c</label> 
    <br> 
    <input type="radio" ng-model="user.answer" ng-value="'option d'"> 
    <label>option d</label> 
    <br> 
    <button ng-disabled="!user.answer" ng-click="submitAnswer(user)">Submit</button> 
</body> 

In app.js,

var app = angular.module('plunker', []); 

app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 
    $scope.submitAnswer=function(user){ 

    alert(user.answer); 

    } 
}); 

Hier ist die plunker Demo für das gleiche

+0

Das ist, was ich brauche, danke –

0

Obwohl ein bisschen spät, würde ich gerne einen zweiten Ansatz posten, da Sie Ionic-Framework verwenden.

Wenn Sie überhaupt eine dynamische Anzahl von Optionsfeldoptionen haben, die von Backend-Daten gesteuert werden [Auch wenn Sie ein statisches Optionsfeld haben, können Sie es in das formale konvertieren], Dann sollten Sie stattdessen verwenden Ionic des Radio-Buttons:

IE, in Ihrem HTML:

<ion-radio ng-repeat="user in userAnswers" 
      ng-value="user.answer" 
      ng-model="finalAnswer"> 
    {{ item.text }} 
</ion-radio> 

Und in Ihrem Controller:

$scope.userAnswers = [ 
    { text: "Backbone", answer: "bb" }, 
    { text: "Angular", answer: "ng" }, 
    { text: "Ember", answer: "em" }, 
    { text: "Knockout", answer: "ko" } 
    ]; 

    $scope.finalAnswer = 'ng'; 

Mehr können Informationen sein fou nd in der official documentation und CodePen Demo