我要求从对象列表中删除学生对象。这样我就可以从DB中检索所有学生对象并存储在变量中。
有一个选项可以过滤学生,提供一个文本框,以便用户可以输入学生姓名,列表将根据输入的名称进行过滤,如下图所示:
因此,用户可以使用单选按钮从过滤列表中选择要删除的特定学生,并可以删除特定学生。 但问题是目前我没有在控制器中获得单选按钮值。
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”}
请帮助解决这个问题!!!!!
答案 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>
尝试为单选按钮添加名称。