【发布时间】:2017-01-20 19:10:22
【问题描述】:
我正在使用 angularJS v 1.5.6 并且想知道如何使用 $location.path 正确传递我的表单数据。
这是我的代码页面 A:
<form>
...
<button type="submit" ng-click="submit(formData)">submit</button>
</form>
JS:
app.config(['$routeProvider', function ($routeProvider) {$routeProvider
// Home
.when("/", {
templateUrl: "A.html",
controller: "ACtrl"
})
.when("/B/", {
templateUrl: "B.html",
controller: "BCtrl"
})
//fallback url if nothing matches
.otherwise({
redirectTo: '/'
});
}]);
app.controller('ACtrl', function ( $scope, $location, $http) {
$scope.formData = {};
$scope.submit = function() {
$location.path("/B/" + $scope.formData );
};
});
//controller for B page
app.controller('BCtrl', ['$scope', '$routeParams',
function($scope,$routeParams) {
$scope.formData = $routeParams.formData;
}]);
这是一个非常简单的例子,但我不知道如何解决它:(
点击提交没有任何反应。如果我从 $scope.formData 中删除 $scope,我会收到如下错误:错误:formData 未定义。
formdata 中的术语可用,我用 console.log($scope.formData) 测试过,一切正常。
这里是链接插件:https://plnkr.co/edit/K5zwcmRRyom5HR4a5Q9o
编辑
现在唯一的问题是,如何在 foreach 循环中正确处理选择对象。需要帮助
【问题讨论】:
-
使用 $scope 在页面之间传递数据是个坏主意。更好的是使用服务在不同页面之间共享/传递数据。您可以创建单独的服务 formStateService 并将其注入不同的控制器
-
请创建一个plunker 以便我们进行编辑。
-
好的,plunker 可用等。
-
使用本地存储来实现这一点。
-
知道如何解决选择对象的问题吗?
标签: javascript angularjs