如何正确使用AngularJS中的自定义服务
How to properly use custom service in AngularJS
我正在尝试将控制器逻辑移动到服务。我添加了DataService并注入了$http。然后loadData()方法返回JSON。我已经将此服务注入到TestController中,并调用了上面提到的函数,但它不起作用。同样简单的逻辑在控制器中正确工作。我应该改进什么?:)
var app = angular.module('TestApp', []);
app.controller('TestController', TestController);
app.service('DataService', DataService);
function TestController(DataService) {
var vm = this;
vm.personalInfo = DataService.loadData();
}
function DataService($http) {
var store = this;
store.personInfo = [];
store.loadData = function(){
$http.get('data.json')
.success(function(data){
store.personInfo = data;
})
.error(function(){
store.personInfo = "Error occured";
});
return store.personInfo;
};
}
我的观点看起来很简单:
<body ng-app="TestApp" ng-controller="TestController as test">
<h1>Hello Plunker!</h1>
<p ng-repeat="item in test.personalInfo" ng-bind="item.firstname"></p>
<script data-require="angular.js@1.2.25" data-semver="1.2.25" src="https://code.angularjs.org/1.2.25/angular.js"></script>
<script src="script.js"></script>
</body>
在您的代码store.loadData
中,在来自后端的响应之前返回undefined。所以使用这个代码:
var app = angular.module('TestApp', []);
app.controller('TestController', TestController);
app.service('DataService', DataService);
function TestController(DataService) {
var vm = this;
DataService.loadData().then(function(data) {
vm.personalInfo = data.data
})
.catch(function(err) {
console.log(err)
})
}
function DataService($http) {
var store = this;
store.personInfo = [];
store.loadData = function() {
return $http.get('data.json')
};
}
相关文章:
- 正在Angular 2中的扩展RouterOutlet中导入自定义服务以进行身份验证
- 如何正确地将数据从自定义服务传递到角度控制器
- AngularJs:在自定义服务中使用cookie
- 使用angularjs中的自定义服务交换ng src属性
- 在Angular 2中的另一个服务中注入自定义服务
- 如何使用angularJS自定义服务从REST API获取数据
- http的自定义服务不起作用
- Angularjs自定义服务变量未被$http成功定义
- 自定义服务没有加载,尽可能简单
- AngularJs 简单的自定义服务不起作用
- 内部服务器错误在 post 请求中使用 Angular js 中的自定义服务
- 角度 js 自定义服务/工厂无法注入控制器/配置
- 用于定义自定义服务的语法
- AngularJS在自定义服务中使用角度模块
- Angular 调用自定义服务 - 找不到调用源
- 如何在angularjs的自定义服务中注入$cookie
- 如何在纯ES5(Javascript)中向angular组件注入自定义服务
- 如何正确使用AngularJS中的自定义服务
- AngularJS:帮助以正确的方式注册自定义服务
- 返回一个布尔值的Angularjs自定义服务方法