Angular服务不会触发
angular service doesn't fire
我做了非常简单的plunker来显示我的问题。问题是我有一个变量,我想用初始应用加载来填充这个变量,为此我做了angular services,但由于某种原因,angular services没有在控制器内部触发。我错在哪里?
app.controller('MainCtrl', function($scope, optService) {
$scope.priority = [];
var exeService = function() {
console.log('function fired')
// this is firing
optService.myOptions(function (result) {
console.log('service fired')
// this is not firing
angular.forEach(result, function(value) {
$scope.priority.push({value: value.name, label: value.name});
});
});
}
exeService()
console.log($scope.priority)
// shows an empty array
});
服务(function () {
angular.module("app").factory("optService", ["$http", "$rootScope", "$q", "$log",
function ($http, $rootScope, $q, $log) {
var clearApi = "test.json";
function myOptions () {
return $http.get(clearApi)
.then(function (response) {
console.log(response.data)
// shows an array
return response.data;
});
}
return {
myOptions: myOptions
}
}])
}());
你应该这样做服务声明:
app.controller('MainCtrl', ['$scope', 'optService', function($scope, optService) {
和控制器
optService.myOptions().then(function (result) {
console.log('service fired')
angular.forEach(result, function(value) {
$scope.priority.push({value: value.name, label: value.name});
});
});
相关文章:
- 使用angular.js问题的JavaSpringREST服务
- Angular使服务可以从任何地方访问
- Angular 2和服务单元测试
- Angular js-尚未添加PUT请求到服务的URL
- 可以't访问Angular.js服务中的功能
- 通过服务Angular向服务器发送$routeParam
- chrome.storage.sync.get未返回值-Angular服务
- 如何在angular中使构造函数之外的服务可用
- Http服务工厂将未定义的返回到Angular中的控制器
- 如何调用用nodejs编写的服务形式angular
- 由控制器调用的服务更改时,Angular未更新视图
- 正在Angular 2中的扩展RouterOutlet中导入自定义服务以进行身份验证
- 将Browserify与Angular JS结合使用--将服务传递到控制器中
- AngularJS剑道网格绑定到angular服务webapi-当使用[fromuri]进行解析时,排序总是为null
- Angular JS$编译服务导致$watch内存泄漏
- 如何在angular js中的工厂/服务中使用$cookie
- angular如何在我的情况下设置服务
- 在一个服务中引用多个API调用(Angular)
- 使用web服务Java-angular时出现错误404
- $http服务angular不工作