Javascript 在ng对话框中保存表单数据
所以我在angular js的ng对话框插件中有一个表单。ng对话框的内容是从外部html文件加载的。问题是,当我试图保存数据时,它是未定义的。我怀疑我没有更新我使用的ng模型,但不清楚如何更新。我看过一些类似的例子,但仍然不起作用。我想在按下表单内的按钮时收集数据,不是在对话框关闭时,而是在关闭时收集数据。这是我的密码: angular.app.jsJavascript 在ng对话框中保存表单数据,javascript,angularjs,ng-dialog,Javascript,Angularjs,Ng Dialog,所以我在angular js的ng对话框插件中有一个表单。ng对话框的内容是从外部html文件加载的。问题是,当我试图保存数据时,它是未定义的。我怀疑我没有更新我使用的ng模型,但不清楚如何更新。我看过一些类似的例子,但仍然不起作用。我想在按下表单内的按钮时收集数据,不是在对话框关闭时,而是在关闭时收集数据。这是我的密码: angular.app.js myApp.controller('RequestController', function ($scope, $http, $location
myApp.controller('RequestController', function ($scope, $http, $location, $window, subtitleRequestService, $sce, subtitlesApiServiceUrl, helperService, ngDialog) {
$scope.string_identifier = helperService.getParameterByName("v");
$scope.availableSubtitles = null;
$scope.request = {
status: "pending",
status_reason: "",
status_reason_f: ""
};
var getAvailableSubtitles = function()
{
subtitleRequestService.getAvailableSubtitlesForRequest().then(
function (res) {
var subs = res.data.message;
$scope.availableSubtitles = subs;
},
function () {
alert('Error');
}
);
};
$scope.saveStatus = function()
{
var sts = ($scope.request.status_option === "accepted" ? $scope.request.status_reason : $scope.request.status_reason_f);
$http.post(subtitlesApiServiceUrl + "changeRequestStatus/request_id/" + $scope.string_identifier + "/status/" + $scope.request.status + "/status_reason/" + sts)
.success(function (data, status, headers, config) {
alert(data.message);
}).error(function (data, status, headers, config) {
alert(data);
});
};
$scope.changeStatus = function()
{
getAvailableSubtitles();
var dialogInstance = ngDialog.open({
//appendTo: window.parent.document.getElementsByTagName('body'),
template: "/templates/change-request-status.html",
scope: $scope,
controller: 'RequestController',
className: 'ngdialog-theme-default'
});
};
});
externalTeamplate.html
<div class="ngdialog-message" ng-controller="RequestController">
<h3>Schimbă status</h3>
<div class="form">
<form class="form" name="$scope.request">
<div class="row">
<label for="status_options">Status</label>
<select name="status_options" id="status_options" ng-model="request.status_option">
<option value="pending" selected="selected">În procesare</option>
<option value="accepted">accepted</option>
<option value="rejected">rejected</option>
<option value="deleted">deleted</option>
<option value="in_translation">in_translation</select>
</select>
</div>
<div class="row" ng-show="request.status_option !== 'accepted'">
<label for="status_reason">Reason:</label>
<input type="text" id="status_reason" size="35" maxlength="144" ng-model="request.status_reason" />
</div>
<div class="row" ng-show="request.status_option=='accepted'">
<label for="status_reason_f">Please select:</label>
<select id="status_reason_f" ng-repeat="(key, value) in availableSubtitles" ng-model="request.status_reason_f">
<option value="{{key}}">{{value}}</option>
</select>
</div>
</form>
</div>
</div>
<div class="ngdialog-buttons">
<button type="button" class="ngdialog-button ngdialog-button-primary" ng-click="saveStatus()">Salvează</button>
</div>
希姆布状态
地位
În程序
认可的
拒绝
删除
英译
原因:
请选择:
{{value}}
萨尔维亚兹
我错过了什么?谢谢 使用
ng submit=“saveStatus()”
并将类型为submit的按钮放入表单中,因此我添加了ng submit=“saveStatus())
到表单
标签,移动表单标签中的按钮,并将其类型更改为提交。仍然不起作用,仍然选择默认值。我刚刚在JSFIDLE中尝试了您的代码。这很奇怪。您将按钮放在请求控制器
之外。我甚至不知道您在哪里查看数据,saveSta>tus
未被调用…您是否可以在plunker/fiddle中复制,这样我们就不必讨论想象中的代码?我现在正在继续…使用ng submit=“saveStatus()”
并将类型为submit的按钮放入表单中,因此我在表单中添加了ng submit=“saveStatus()
,在表单标签中移动了按钮,并将其“类型”更改为“提交”。仍然不起作用,仍然选择默认值。我刚刚在JSFIDLE中尝试了您的代码。真奇怪。您已将按钮置于RequestController
外部。我甚至不知道您在哪里可以看到数据,saveStatus
没有被调用……您是否可以在plunker/fiddle中复制数据,这样我们就不必讨论想象的代码了?我现在正在继续。。。。