一尘不染

AngularJS,路由之间传递范围

angularjs

我遇到的情况是表单跨越了几页(可能并不理想,但这就是事实)。我想为整个表单提供一个范围,以便您随身携带,以便用户在步骤之间来回移动时很容易记住状态。

所以我需要用非常伪的代码来做:

  1. $scope.val = <Some dynamic data>
  2. 单击一个链接,然后将其路由到新模板(可能使用同一控制器)。
  3. $scope.val 仍应与最后一页上的值相同。

是否以某种方式持久保存示波器的数据是解决此问题的正确方法,还是还有其他方法?您是否甚至可以创建一个在路由之间具有持久作用域的控制器,当然除了将其保存在数据库中。


阅读 211

收藏
2020-07-04

共1个答案

一尘不染

您需要使用服务,因为服务将在您的应用程序的整个生命周期中持续存在。

假设您要保存与用户有关的数据

这是您定义服务的方式:

app.factory("user",function(){
        return {};
});

在第一个控制器中:

app.controller( "RegistrationPage1Controller",function($scope,user){
    $scope.user = user;
    // and then set values on the object
    $scope.user.firstname = "John";
    $scope.user.secondname = "Smith";
});

app.controller( "RegistrationSecondPageController",function($scope,user){
        $scope.user = user;
        // and then set values on the object
        $scope.user.address = "1, Mars";

    });
2020-07-04