gpt4 book ai didi

javascript - 在 Controller angularJS中注入(inject)工厂

转载 作者:行者123 更新时间:2023-11-30 17:18:35 25 4
gpt4 key购买 nike

我对 angularJS 工厂和 Controller 有疑问我想在工厂中获得 http 回复并在 Controller 中使用 api 回复但我不知道如何处理工厂并将其注入(inject) Controller

.controller('PlaylistsCtrl', function ($scope, $http) {
$http({ method: 'GET', url: "https://www.googleapis.com/blogger/v3/blogs/1309320265504420965/posts?key=***************" }).
success(function (data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
for (var i =0; i < data.items.length;i++)
{

var m,
urls = [],
str = data.items[i].content,
rex = /(https?:\/\/.*\.(?:png|jpg))/g;

while ( m = rex.exec( str ) ) {
urls.push( m[1] );
data.items[i].ImageURL = urls[0];
}
//data.items[i].ImageURL = urls[0];
}
$scope.playlists = data.items;
}).
error(function (data, status, headers, config) {
// called asynchronously if an error occurs
// or \\server returns response with an error status.
});
})

最佳答案

我不太确定你在找什么,但你总是可以通过返回 http 调用来返回一个 promise 。然后在 Controller 中捕获那个 promise 并用它做一些事情:

例如:apiService.js

(function(app) {
"use strict";

app.factory("apiService", ["$http", function($http) {
var get = function(url, config) {
return $http.get(url, config);
};

var post = function(url, data, config) {
return $http.post(url, data, config);
};

var put = function(url, data, config) {
return $http.put(url, data, config);
};

var remove = function(url, config) {
return $http.delete(url, config);
};

return {
get: get,
post: post,
put: put,
remove: remove
};
}]);
})(_app);

然后在你的 Controller 中注入(inject)服务:

(function(app) {
"use strict";

app.controller("MyCtrl", ["$scope", "apiService", function($scope, apiService) {

$scope.getData = function() {
apiService.get("/server/data").success(function(data) {
console.log(data);
}).error(function(err) {
console.log(err);
});
};
}
]);
})(_app);

可选(app.js):

var _app = _app || {};

(function() {

"use strict";

_app = angular.module("myApp", []);
})();

关于javascript - 在 Controller angularJS中注入(inject)工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25612401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com