我在将服务中的数据填充到视图中时遇到问题。我有这样定义的服务
app.factory('nukeService', function($rootScope, $http) {
var nukeService = {};
nukeService.nuke = {};
//Gets the list of nuclear weapons
nukeService.getNukes = function() {
$http.get('nukes/nukes.json')
.success(function(data) {
nukeService.nukes = data;
});
return nukeService.nukes;
};
return nukeService;
});
和我的控制器
function NavigationCtrl($scope, $http, nukeService){
/*$http.get('nukes/nukes.json').success(function(data) {
$scope.nukes = data;
});*/
$scope.nukes = nukeService.getNukes();
}
如果我从控制器使用$
http.get,数据将很好地填充,但是,如果我尝试从服务中调用数据,那么我什么也不会得到。我知道查询是异步的,但是我很难理解一旦返回数据就如何填充$
scope变量。我可以使用$
rootscope广播事件并在控制器中侦听它,但这似乎并不是完成此事件的正确方法。对于如何正确执行此操作的任何建议,我将不胜感激。
我认为这应该可以解决您的问题
app.factory('nukeService', function($rootScope, $http) {
var nukeService = {};
nukeService.data = {};
//Gets the list of nuclear weapons
nukeService.getNukes = function() {
$http.get('nukes/nukes.json')
.success(function(data) {
nukeService.data.nukes = data;
});
return nukeService.data;
};
return nukeService;
});
function NavigationCtrl($scope, $http, nukeService){
$scope.data = nukeService.getNukes();
//then refer to nukes list as `data.nukes`
}
这是对象引用的问题。
调用时,您nukeService.getNukes()
获得对一个对象的引用,a
然后您的变量$scope.nukes
引用该内存位置。
在设置了远程服务器之后,nukeService.nukes = data;
您不需要更改对象,a
而是nukeService.nukes
从引用对象更改a
为对象b
。但是您$scope.nukes
不知道这种重新分配,它仍然指向对象a
。
在这种情况下,我的解决方案是传递a
具有属性的对象,data
然后仅更改数据属性,而不是更改对a
我试图从一个服务加载一些数据,该服务在控制台中测试时工作,它正确地显示了所需的数组,但当从我的组件调用服务的相同方法时(我需要呈现数据),它只显示[object]。。。。在控制台中,组件本身上没有任何内容。 仅供参考:正在使用的提供商(/api/departement)正常工作,因为数据可以显示在控制台中(来自服务本身的数据)。 这是我的代码: Department.ts: Departement
问题内容: 我在Angular中有一个服务,该服务使用我的API来获取用户信息并将其提供给控制器。设置如下: 在我的控制器中,我将其包含为: 这不会返回任何数据,而如果我将相同的服务功能放在控制器本身中,它将返回正确的值。我在这里想念什么?以前从未在Angular中使用过DI / Services,因此在某个地方可能是一个简单的错误。 我需要确保该服务在控制器加载 之前 返回数据。如何做到这一点
现在,我们正试图根据业务规则的需要集成。我们希望将所有规则存储在数据库中,这些规则将在JBPM服务器启动时(或Java VM启动时)加载。因此,规则将被加载到工作内存中,并可在需要时在JBPM流程中使用。 这里有2个问题:- 1)如何完成这一工作(从数据库加载规则,并在JBPM服务器加载时将它们放入JBPM和Drools的工作内存中)? 其思想是,一旦加载了规则,就可以根据需要访问进程中的任何地方
我正在使用ipython笔记本电脑,通过连接到一个服务器,我不知道如何通过编程将东西(例如数据帧、.csv文件等)下载到本地计算机。因为我不能像C://user/。。。它会下载到他们的机器上而不是我的
我正在尝试建立 PHP 连接,但不断收到此错误。我希望有人能帮忙。 我的代码给出了以下错误: 我的代码是: 而 busca.php 的文件是: