我正在尝试创建一个多步骤表单,但在查看/状态之间共享数据时遇到问题。我不确定我这样做的方式是否准确,因为我是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变量。我该怎么做呢?
答案 0 :(得分:1)
如果你想在控制器/状态之间进行通信,你最好选择@ronnie提到的那个;创建service或工厂。
如果您想了解哪些服务以及如何使用这些服务,请查看此内容:AngularJS Step-by-Step: Services