使用ui-router将服务的数据加载到嵌套视图中

时间:2016-08-06 21:01:14

标签: angularjs angular-ui-router

在Angular应用程序的主页上,我有一个视图和一个嵌套视图(请参阅下面的ui-router代码)。对于视图,我对我的数据库进行了ng-repeat调用,并使用 $urlRouterProvider.otherwise('/open'); $urlRouterProvider.when('/open', '/open/mainbook'); $stateProvider .state('open', { url: '/open', templateUrl: 'ang/views/open.html', }) .state('open.mainbook', { url: '/{featId}', templateUrl: 'ang/views/open.mainBook.html', })` 显示结果。同时我将这些结果推送到服务中。在嵌套视图中,我从服务中调用一个结果并显示它(我使用两个控制器)。我的问题是我需要在加载时发生所有这些。是"解决"在ui-router中最好的方法来解决这个问题?

   1. Replaces values from the database to bookmarks on a MS Word document.
   2. Manipulate the Word object even after the end user has modify it.
   3. Save the Word document on a network share.     

1 个答案:

答案 0 :(得分:0)

解决方案是不使用该服务,将两个控制器合并为一个,并使用$http在初始$state.go调用中立即调用嵌套视图(我还给出了嵌套查看同一通话中的数据),即
$scope.featCall = function () { $http({ method: 'GET', cache: 'true', url: '/featList' }).then(function (result) { $scope.single = []; $scope.single = result.data[0]; $state.go('open.mainbook', { featId: $scope.single.id }); bookData.clearProduct(); angular.forEach(result.data, function (eachOne) { $scope.featList.push(eachOne); bookData.addProduct(eachOne); }) }) };

请注意,我仍然使用服务(bookData)来更改嵌套视图的后续更改,而不是用于初始的数据填充。