表单中的数据不会传递给提交函数-使用Angular
Data from form are not passed to submit function - Using Angular
我对使用Angular实现的表单有问题。在作用域中定义我的变量,我可以在html表单(ng模型)中看到值(预填充),但当我提交函数时,新数据(由用户插入)不会更新控制器中的模型($scope-var)。这里是我的html和js控制器的剪报:
<form class="form-horizontal">
<h3>Citizen</h3>
<div class="row">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Name</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="name" ng-model="ticketDetails.ticketDetails.name" placeholder="Name">
</div>
<label for="DOB" class="col-sm-2 control-label">Birth date</label>
<div class="col-sm-4">
<input type="date" class="form-control" id="DOB" ng-model="ticketDetails.ticketDetails.DOB" placeholder="Birth Date">
</div>
</div>
</div>...
和控制器
angular.module('demoApp', [])
.controller('mainController',函数($scope,$http){
// $scope.ticketDetails = { "ticketDetails" : {
// "name": "Giovanni Vigorelli",
// "DOB": "1974-05-02T05:07:13Z",
// "driverLicense": "e345234",
// "registration": "hdd843",
// "ticketType": "Speeding",
// "date": "2016-05-02T05:07:13Z",
// "location": "34 Queen St, Auckland",
// "ticketId": "12345",
// "officer": "Oscar Nice"
// }};
$scope.ticketDetails = { "ticketDetails": {}};
$scope.ticketDetails.ticketDetails.ticketId = (+new Date).toString(36).slice(-5);
// The following should be the authentucated user
$scope.ticketDetails.ticketDetails.officer = "Oscar Nice";
var bpmQueryParam = 'action=start&bpdId=25.c1206b63-1e94-4aaa-9dc1-76363270b441&processAppId=2066.d0e91cc6-a515-4965-ba6f-516bdbddcb00¶ms=' + JSON.stringify($scope.ticketDetails) + '&parts=all';
$scope.startProcess = function(){
console.log('### In startProcess');
console.log("### bpmQueryParam: " + bpmQueryParam);
var req = {
method: 'POST',
headers: {'Authorization': 'Basic YWRtaW46YWRtaW4=','Accept': 'application/json','Access-Control-Allow-Origin': '*', 'Content-Type': 'application/x-www-form-urlencoded'},
url: 'http://1.1.1.1:9080/rest/bpm/wle/v1/process',
data: bpmQueryParam
}
基本上,我不需要var的双向同步,只是从控制器到视图,而不是从视图到控制器。
有什么建议吗?干杯,Giovanni
我假设$scope.startProcess
是您的提交函数。请在提交功能内写下以下行:
var bpmQueryParam = 'action=start&bpdId=25.c1206b63-1e94-4aaa-9dc1-76363270b441&processAppId=2066.d0e91cc6-a515-4965-ba6f-516bdbddcb00¶ms=' + JSON.stringify($scope.ticketDetails) + '&parts=all';
您已经在函数外编写了此代码,因此它将获取$scope.ticketDetails
变量的初始数据。
你应该这样写:
$scope.startProcess = function(){
var bpmQueryParam = 'action=start&bpdId=25.c1206b63-1e94-4aaa-9dc1-76363270b441&processAppId=2066.d0e91cc6-a515-4965-ba6f-516bdbddcb00¶ms=' + JSON.stringify($scope.ticketDetails) + '&parts=all';
// Rest of your code
}
相关文章:
- 表单中的数据不会传递给提交函数-使用Angular
- javascript表单提交函数没有't提交
- Jquery提交函数未验证
- JQuery:重用提交函数
- j查询提交函数未触发
- 提交函数无法正确加载
- 当我调用其他提交函数时,$anchorScroll正在进行第二次单击
- 非常基本的PHP和Javascript - 提交/函数不起作用
- 将变量传递给 JQuery 提交函数
- 表单只检查提交函数的第一个值
- 如何将ajax提交函数添加到表单中
- 这个jQuery提交函数出了什么问题
- Javascript表单验证提交函数
- 如何添加提交函数到js的Onclick函数
- 在表单提交函数中调用jQuery AJAX
- 按条件提交函数中的表单
- JQuery提交函数不启动
- 如何在代码编写器中调用提交函数
- 为动态填充的jquery .submit添加额外的提交函数
- 从父窗口表单向父窗口和iframe提交函数