AngularJS:在控制器之间共享数据,具有服务和 restangular
AngularJS : Share data between controllers with service and restangular
我是 angular 的新手,我仍在为服务而苦苦挣扎,我有一个应用程序可以查询服务器进行调查,并在向导中显示调查问题,调查中的每个问题都在一个路由中(/survey/:surveyId/question/:questionId)
我正在尝试做的是第一次加载调查,然后使用该加载的数据而不再次查询它。
据我了解,我需要一项服务,我正在使用 Restangular,但我不知道在我的服务中返回什么,这就是我所拥有的:
angular.module('surveys')
.factory('questionsService', ['Restangular', function (Restangular) {
var surveyId = 1;
return {
questions: Restangular.one("survey", surveyId).getList("questions")
}
}
然后在我的控制器中,我只是做:
questionsService.questions.then(function (questions) {
$scope.questions = questions;
$scope.currentQuestion = $routeParams.page ? $scope.questions[$scope.currentQuestionIndex] : null;
});
这是有效的,我不知道这是否是正确的方法。
但是现在我需要在我的服务中做其他事情,例如获取未回答的问题,这就是我迷路的地方,因为如果我在我的服务中放入 getUnansweredQuestions() 中的函数,我不知道如何获取问题,我不知道它们是否已经解决。
我不知道我是否足够清楚,但我需要一些建议。
尝试这样的事情:
surveys.run(function($rootScope,$http,$q) {
function getData () {
var deferred = $q.defer();
$http(insertConfigObjectHere)
.success(function (data, status, headers, config) {
deferred.resolve(data);
})
.error (function (data, status, headers, config) {
deferred.reject();
});
return deferred.promise;
}
$rootScope.myData = getData();
}
警告:我也是 AngularJS 的新手,但我认为这可能有效,它也没有经过测试。
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- 监视函数从服务返回不起作用,但作用域函数起作用
- 通过Magento的网络服务检索运费
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 使用angular.js问题的JavaSpringREST服务
- AngularJS-需要在index.html页面中访问来自服务的数据
- 如何在Ionic2测试版中包含Ionic.io服务
- 基于api密钥的NodeJS web服务
- Redux应用程序结构-在哪里放置服务/业务逻辑
- Liferay:从portlet调用JSON服务
- 使用javascript在客户端上使用Web服务
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- 从Javascript连接到SOAP Web服务
- 如何检测服务广告维度
- 很少有角服务,只有常数不同
- 如何在服务、技能、投资组合等方面添加滑动效果
- 尝试将服务链接到控制器时出现角度问题
- Restangular服务getList('pit')发送参数
- 使用 Restangular 保持 CRUD 干燥:指令、继承控制器或包装服务
- AngularJS:在控制器之间共享数据,具有服务和 restangular