我正在尝试添加一个按钮,当单击该按钮时,会调用一个带参数的函数并将其发送到我的服务器。到目前为止它看起来像这样:
<table class="table table-hover">
<thead>
<tr>
<th>Id</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="interview in $ctrl.pendingInterviews">
<td>{{ interview.id }}</td>
<td><a href="/#!/pending-interviews-list?interviewId={{interview.id}}"><input type="submit" name="Submit" id="submit" ng-click="$ctrl.addParticipant();"></a></td>
</tr>
</tbody>
</table>
我的角色成分中包含的内容:
var participant={
username:"mama",
interviewId:$routeParams.interviewId
};
console.log(participant);
console.log(JSON.stringify(participant));
this.addParticipant = function saveParticipant() {
console.log("in partikip")
Interview.addParticipant(JSON.stringify(participant))
.then(
function (errResponse) {
console.error('Error while fetching pending interviews');
}
);
}
我的角色服务中有什么:
function addParticipant(participant) {
console.log("Im here too");
console.log(participant + "asdasdsda");
var deferred = $q.defer();
$http.post('http://localhost:8080/interviewsupdateparticipant', participant)
.then(
function (response) {
deferred.resolve(response.data);
},
function (errResponse) {
console.error('Error while adding participant');
console.error(''+ participant.username + participant.interviewId)
deferred.reject(errResponse);
}
);
return deferred.promise;
}
问题是,当我转到我的页面时,来自控制器的参与者将用户名设置为mama,并将interviewId设置为undefined。当我单击提交按钮时,它会发送未定义的和硬编码的用户名,而不是发送id和硬编码的用户名。为什么?为什么不自动获得面试?
当我单击“提交”时,由于某种原因,ID仍然未定义,只有在我再次单击时才会更改。任何想法可能是什么问题?
答案 0 :(得分:2)
许多可以解决这个问题的事情:
interview.id
作为参数传递给addParticipant()
方法,而不是通过$routeParams
变量获取input type="submit"
,在<a>
链接中,请尝试更改