我第一次尝试AngularJS。我正在使用工厂从http-get请求中获取JSON数据,但是在完成ajax请求之前,该对象返回为空。
厂:
myDemo.factory('photosFactory', function($http) {
var photos = [];
var factory = {};
factory.getPhotos = function() {
$http({
url: 'content/test_data.json',
method: 'GET'
}).success(function(data, status, headers, config) {
photos = data;
return photos;
});
};
return factory;
});
控制器:
controllers.AppCtrl = function($scope, $location, $http, photosFactory) {
$scope.photos = [];
init();
function init() {
$scope.photos = photosFactory.getPhotos();
}
};
这就是我想出的。当控制器设置$ scope.photos时,该值为空,就好像它在填充ajax响应之前返回photos数组。
您应该修改代码以返回承诺并使用控制器中的值,请参见伪修改后的代码
myDemo.factory('photosFactory', function($http) {
return{
getPhotos : function() {
return $http({
url: 'content/test_data.json',
method: 'GET'
})
}
}
});
和控制器-
controllers.AppCtrl = function($scope, $location, $http, photosFactory) {
$scope.photos = [];
photosFactory.getPhotos().success(function(data){
$scope.photos=data;
});
};
问题内容: 我是AngularJS的新手,因此遇到了这个问题。 我可以在所有注入了控制器的工厂中重新注入我的工厂单例对象吗? 例如: 在MedicalCenterController中,当应用程序启动时,我得到了带有医疗中心的单例对象: 但是稍后,我尝试在AccountProfileController中编辑医疗中心字段(名称,地址等)。 我期望的是具有更新字段的对象。如何返回我的单身人士的新实例
问题内容: 我试图了解Angular中工厂和服务的概念。我在控制器下有以下代码 此代码可以正常工作。但是,当我将$ http服务移入工厂时,我无法将数据返回到控制器。 使用工厂有什么好处,因为$ http即使在控制器下也可以工作 问题答案: 将服务移出控制器的目的是实现关注点分离。服务的工作是知道如何与服务器通信,而控制器的工作是在视图数据和服务器数据之间转换。 但是,您会混淆异步处理程序以及返回
问题内容: 我对此有很多麻烦,在SO或Google上似乎找不到任何可以帮助我发现自己在做错事情的东西。 的作品,但是当我尝试返回温度,其空。我已经尝试了各种方法来使它起作用,但是我似乎无法在函数中设置temp值 这可能是简单的事情(或者我这是一个愚蠢的错误/误导方法)。任何建议将不胜感激 问题答案: 使用延迟:
我有几个具体的使用以下类型的接口 具体的课程如下 现在我怎么能写工厂类,它重新运行一个通用接口,比如IActive。 谢谢
我在我的程序中使用Hibernate注释,但它出错了。它没有返回我打开的会话工厂。我使用了netbean IDE,当我调试我的程序时,它想打开一个会话,下一步,它会转到,而不做任何其他事情。 这是我的文件夹。 在此输入图像描述 这是我的hibernate util 是我的类得到了会话工厂,但是得到了错误 然后在下一步之后也去上这门课 在此输入图像描述
问题内容: 我一直在做很多工作,总的来说,我发现它是一个有趣而强大的框架。 我知道关于服务,工厂,提供者,价值的讨论很多,但是我对“什么是”仍然很困惑。 在其他StackOverflow讨论中,工厂定义如下: 工厂名称 语法:结果:在将factoryName声明为可注入的参数时,将为您提供通过调用传递给module.factory的函数引用而返回的值。 我发现很难理解这种解释,也并没有增加我对工厂