我正在构建一个基本应用程序来加载当前正在进行的事件列表。我有一个基本的CRUD系统,我在控制器中构建了所有功能。我被建议使用Angular自定义服务,而不是在控制器上的许多函数上堆积。
我现在正在将我的代码重新编写为自定义服务,但无法完全掌握结构。以下是我到目前为止的情况,但目前我在此行Unexpected token .
上的服务代码上收到错误var configurations.data_result_1 = configurations.data_result_1.split("\r\n");
我觉得我的代码都错了,但是在网上找不到相似的情况。会感激一些帮助。这是我到目前为止所得到的:
服务:
var GDI_configurations = {};
app.service('MyService', function () {
this.sayHello() //fetch data on page load.
this.sayHello = function () {
var deferred = $q.defer();
$http({
method: 'GET',
url: 'AJAX PATH',
headers: { "Accept": "application/json;odata=verbose;charset=utf-8"}
}).then(function(data){
var configurations = data;
var configurations.data_result_1 = configurations.data_result_1.split("\r\n");
var configurations.data_result_2 = configurations.data_result_2.split("\r\n");
};
});
控制器:
app.controller('AppController', function (MyService, $scope) {
$scope.configurations = function() { MyService.sayHello() };
});
答案 0 :(得分:-1)
首先,你不是在服务中注入$ q和$ http。 其次,您没有使用$ q来解决或拒绝。 第三,由于$ http服务返回一个承诺,因此从$ q创建一个承诺是$ q冗余。
请考虑以下代码:
app.service('MyService', function ($http) {
this.sayHello = function () {
return $http({
method: 'GET',
url: 'AJAX PATH',
headers: { "Accept": "application/json;odata=verbose;charset=utf-8"}
});
};
});
app.controller('AppController', function (MyService, $scope) {
$scope.configurations = null;
MyService.sayHello().then(function(data){
$scope.configuration = data;
$scope.configurations.data_result_1 = $scope.configurations.data_result_1.split("\r\n");
$scope.configurations.data_result_2 = $scope.configurations.data_result_2.split("\r\n");
}, function(error){
// some error occurred
})
});
如果你想在服务中缓存响应以从多个控制器中检索它,请告诉我..我可以用这样的方式重写代码..希望这可以帮助你...欢呼