所以,我的SPA功能大约有98%。该应用程序从MySQL数据库中提取数据,并允许用户编辑/删除记录。对于相关页面,它将编辑/删除指定学生ID的数据,但不会在文本字段中正确显示数据。
如果您没有输入值,它将显示JSON数组中的第一项,但不会显示您在搜索字段中指定的项。
我没有很好地解释这个问题,但是这里是一个HTML页面,它使用一个函数将数据传递给控制器,控制器然后按ID选择相应的学生并将其分配给变量$ scope.student。然后,我尝试使用student.first_name(或任何属性)在HTML页面上显示学生数据,但它无法正常工作。
<h3>Edit/Delete Student with ID: {{student.student_id}}</h3>
<div class="form-group">
<label for="sid">Student ID:</label>
<input type="text" class="form-control" id="sid" ng-model="sid">
</div>
<p><button type="button" class="btn btn-primary" ng-click="getRecord(sid)">
Get Student Info </button> </p>
<div class='row'>
<div class="col-md-6">
<div class="form-group">
<label for="first_name">First Name:</label>
<input type="text" class="form-control" id="first_name" ng-model="student.first_name">
</div>
<div class="form-group">
<label for="last_name">Last Name:</label>
<input type="text" class="form-control" id="last_name" ng-model="student.last_name">
</div>
<div class="form-group">
<label for="hrs_completed">Hrs Completed:</label>
<input type="text" class="form-control" id="hrs_completed" ng-model= "student.hrs_completed">
</div>
<div class="form-group">
<label for="hrs_attempted">Hrs Attempted:</label>
<input type="text" class="form-control" id="hrs_attempted" ng-model= "student.hrs_attempted">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="gpa_points">GPA Points:</label>
<input type="text" class="form-control" id="gpa_points" ng-model= "student.gpa_points">
</div>
<div class="form-group">
<label for="major">Major:</label>
<input type="text" class="form-control" id="major" ng-model="student.major">
</div>
<div class="form-group">
<label for="advisor_id">Advisor ID:</label>
<input type="text" class="form-control" id="advisor_id" ng-model="student.advisor_id">
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="text" class="form-control" id="email" ng-model="student.email">
</div>
</div>
<button type="button" class="btn btn-primary" ng-click="updateRecord()">Update</button>
<button type="button" class="btn btn-primary" ng-click="deleteRecord()">Delete</button>
这是我的Javascript页面上的控制器:
app.controller('editCtrl', function($scope, $http) {
$http.get("getStudentData.php")
.then(function (response) {
$scope.students = response.data;
});
$scope.getRecord = function(sid) {
id = sid;
$scope.student = $scope.students.find(s=>s.id == sid);
};
我是否需要向服务器发出单独的GET请求才能使其正常工作或者我是否只需要以不同方式引用学生对象?
答案 0 :(得分:0)
我认为您所获得的内容与response.data
以及您尝试.find()
以及您对html具有约束力的内容存在不匹配。
您正试图通过搜索id
属性进行渲染。
$scope.students.find(s=>s.id == sid);
使用student_id
属性在UI上进行渲染时。
{{student.student_id}}
因此,您所获得的内容肯定与response.data
以及使用$scope.student
属性呈现的内容不匹配。我想我的plunkr会证明你的功能是正确的。
如果此答案无效,请分享您的response.data
。