AngularJS:分配和读取两个不同提交按钮的值



我有一个包含两种提交输入类型的表单。根据单击的提交,我希望将表单保存为草稿或正确的表格。

我正在考虑在提交输入中添加一个值/属性,也许是ng-model属性。。

<form ng-submit="submitNew()">
<div>
Text:
<input type="text" ng-model="myForm.text" />
</div>
<div>
<input type="submit" name="correct" value="Add new" />
</div>
<div>
<input type="submit" name="draft" value="Save as draft" />
</div>
</div>
</form>

在控制器中,我想将其作为布尔值("myForm.isDraft"(添加到使用POST方法发送的数据中:

myApp.controller('myAppController', ['$scope', '$http', '$log',
function($scope, $http, $log) {
$scope.submitNew = function() {
$http({
method: 'POST',
url: '/app/submit',
data: {
text: $scope.myForm.text,
isDraft: $scope.myForm.isDraft,
}
})
};
}
]);

它如何处理提交类型的输入?

编辑-向前迈出一步:

更改后提交到:

<div>
<input type="submit" ng-click="isDraft = false" value="Add new" />
</div>
<div>
<input type="submit" ng-click="isDraft = true" value="Save as draft" />
</div>

$scope.submitNew = function()中添加日志后,我看到$scope.isDraft是true还是false,这取决于单击了哪个按钮。但是,在发送到后端的数据中,它总是错误的。

控制器现在:

$scope.submitNew = function() {
$log.info("Log: isDraft: " + $scope.isDraft);
$http({
method: 'POST',
url: '/app/submit',
data: {
text: $scope.myForm.text,
isDraft: $scope.myForm.isDraft = $scope.isDraft,
}
})
};

如果我将isDraft: $scope.myForm.isDraft = $scope.isDraft更改为isDraft = $scope.isDraft,它仍然无法正常工作。

试着把它放在这样的函数上

$scope.setDraft = function(isDraft) {
$scope.isDraft = isDraft;
//try console.log() to see if the values are correct
//but if its keeps return false try adding this $scope.$apply();
}

在你的html中会像这个

<div>
<input type="submit" ng-click="setDraft(false)" value="Add new" />
</div>
<div>
<input type="submit" ng-click="setDraft(true)" value="Save as draft" />
</div>

或者你可以使用@Eric建议,而不是使用ng-submit,只需创建新功能并像这个一样在ng-click上使用

$scope.submitNew = function(isDraft) {
$http({
method: 'POST',
url: '/app/submit',
data: {
text: $scope.myForm.text,
isDraft: isDraft,
}
})
};

在html中会像这个

<form>
<div>
Text:
<input type="text" ng-model="myForm.text" />
</div>
<div>
<input type="button" ng-click="submitNew(false)" name="correct" value="Add new" />
</div>
<div>
<input type="button" ng-click="submitNew(true)" name="draft" value="Save as draft" />
</div>
</div>
</form>

创建一个变量,该变量是通过点击每个提交按钮来设置的,然后您可以跟踪点击了哪个按钮。

最新更新