单选按钮值在角度

时间:2016-06-22 14:55:40

标签: javascript jquery angularjs

我要求从对象列表中删除学生对象。这样我就可以从DB中检索所有学生对象并存储在变量中。

有一个选项可以过滤学生,提供一个文本框,以便用户可以输入学生姓名,列表将根据输入的名称进行过滤,如下图所示:

Screenshot

因此,用户可以使用单选按钮从过滤列表中选择要删除的特定学生,并可以删除特定学生。 但问题是目前我没有在控制器中获得单选按钮值。

HTML页面如下:

<h2 align="center">Delete Student</h2>
<div ng-controller="deleteStudentController">
<form ng-submit="submitForm()">
    Student Name:<input type="text" letters-only ng-model="searchName"/><br>
    <div ng-repeat="student in students | filter:searchName" ng-show="searchName.length">
        <input type="radio" ng-model="studentRadio" value="{{student._id}}" ng-value="{{student._id}}"/>{{student | formatter}}
    </div>
    <input type="submit" value="Delete Student"/>
</form>
</div>

在控制器中,我已警告单选按钮的值,但它没有获得任何值:

mainApp.controller("deleteStudentController", function($scope,$http) {
var resData = {};
$scope.student = {};
var urlGet = "/students/all";
$http.get(urlGet)
.then(function(response) {
    $scope.students = angular.fromJson(response.data);
});

$scope.submitForm = function (){
       alert("$scope.studentRadio"+$scope.studentRadio);
   };
});

我的示例JSON格式是 {“_ id”:“5765671b37f3dc940d66fad1”,“name”:“hgh”,“id”:“hgh”,“address”:“hjg”}

请帮助解决这个问题!!!!!

3 个答案:

答案 0 :(得分:1)

我找到了解决方案。 由于这是一个迭代单选按钮,需要将模型名称设为“$ parent.studentRadio”。

<input type="radio" ng-model="$parent.studentRadio" name="studentRadio" value="{{student._id}}"/>

谢谢大家......

答案 1 :(得分:0)

我不确定传递给submitForm的arg是什么。

$scope.submitForm = function (){
       alert("$scope.studentRadio" + $scope.studentRadio);
   };
});

您是否检查过这是否有效?

答案 2 :(得分:0)

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

app.controller('MainCtrl', function($scope) {
  
   
    $scope.submitForm = function (){
           alert($scope.studentRadio);
       };
    
});
<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.2.x" src="https://code.angularjs.org/1.2.28/angular.js" data-semver="1.2.28"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <form ng-submit="submitForm()">
        Student Name:<input type="text" letters-only ng-model="searchName"/><br>
        <div>
          <input type="radio" value="1" ng-model="studentRadio" name="studentRadio">1
          <input type="radio" value="2" ng-model="studentRadio" name="studentRadio">2
          <input type="radio" value="3" ng-model="studentRadio" name="studentRadio">3
        </div>
        <input type="submit" value="Delete Student" />
    </form>
  </body>

</html>

尝试为单选按钮添加名称。