多步形式和与angular-ui-router共享数据

时间:2016-04-12 22:52:27

标签: angularjs ionic-framework angular-ui-router

我正在尝试创建一个多步骤表单,但在查看/状态之间共享数据时遇到问题。我不确定我这样做的方式是否准确,因为我是angular-ui-router的新手。这是我的路线:

.state('tab.newEventCategory', {
  url: '/activities/new-event-category',
  views: {
    'tab-patient': {
      templateUrl: 'templates/new-event-category.html',
      controller: 'ActivityDashboardCtrl'
    }
  }
})

.state('tab.newEventSubCategory', {
  url: '/activities/new-event-sub-category',
  views: {
    'tab-patient': {
      templateUrl: 'templates/new-event-sub-category.html'
    }
  }
})

我正在尝试使用上面的路线,以便一旦有人选择了一个类别,他们就会转到他们选择子类别的页面。这是新的事件类别页面:

<div ng-repeat="event_category in event_categories" class="padding">
    <a class="button button-block button-positive button-large" ng-click="moveToEventSubCategory(event_category)">
      {{event_category}}
    </a>
</div>

这里是页面的控制器:

.controller('ActivityDashboardCtrl', function($scope, $stateParams, EventCategory, $state) {
  $scope.formData = {};
  $scope.event_categories = EventCategory.query();

  $scope.moveToEventSubCategory = function(event_category){
    $scope.formData.category = event_category;
    $state.go('tab.newEventSubCategory');
  }
})

我的问题是,现在我希望newEventSubCategory状态可以访问同一个formData对象,因此它可以添加子类别。在此之后将有更多页面到此多步骤表单,并且我希望它们都可以访问相同的formData变量。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

如果你想在控制器/状态之间进行通信,你最好选择@ronnie提到的那个;创建service或工厂。

如果您想了解哪些服务以及如何使用这些服务,请查看此内容:AngularJS Step-by-Step: Services

相关问题