使用$location.path(path)更改位置;ng-submit形式

Change location with $location.path(path); ng-submit form

本文关键字:path 位置 ng-submit 形式 location 使用      更新时间:2023-09-26

我有一个表单:

<form name="myForm" ng-submit="save(myObject)">
...
<button type="submit" class="btn btn-primary" ng-click="changeLocation('/railway-connection')">Save </button>
</form>

如你所见,我想做两件事。提交表单后,它应该调用save()函数并保存数据,它还应该更改位置。

 $scope.save= function (myboject) {
    $scope.saveObj = angular.copy(myboject);
    console.log($scope.saveObj);
};
$scope.changeLocation(path){
    $location.path(path);
};

,但它不工作。如果我点击按钮,它保存数据,也输入方法changeLocation(),但它不改变位置。

如果我删除ng-click并将$location.path('/next')放在函数save()(提交表单函数)中,它会工作。但我想用ng-click。

这怎么可能?

您不必同时使用ng-submit和ng-click。正如ng-submit文档中所说:

注意不要同时使用ngClick和ngSubmit处理函数,以免导致"双重提交"。

使用ng-click在控制器中调用保存函数

<form name="myForm">
    <button type="submit" class="btn btn-primary" ng-click="save(myobject)">Save</button>
</form>

和在保存函数中更改保存对象后的位置路径。

$scope.save= function (myboject) {
   $scope.saveObj = angular.copy(myboject);
   console.log($scope.saveObj);
   $location.path('/next');
};