コントローラを使用して$http
リクエストを行うサービスを呼び出すのですが、今は自分のサービスを設定して文字列を返すようにしました。それが正常に機能していることを確認してください。Angularjsコントローラ呼び出しサービス - 関数でない場合は.success
私はそれを実行すると、私は次のエラーを取得:以下
TypeError: monitorData.requestEvent(...).success is not a function
マイコード:
コントローラ
(function() {
angular
.module('monitorApp')
.controller('eventCtrl', eventCtrl);
eventCtrl.$inject = ['$scope', '$routeParams', 'monitorData'];
function eventCtrl($scope, $routeParams, monitorData) {
var vm = this;
vm.eventid = $routeParams.eventid;
vm.event = {};
vm.getData = function(eventid) {
console.log("getData variable accessed");
monitorData.requestEvent(eventid)
.success(function(data) {
console.log(data);
})
.error(function(e) {
console.log("Error");
});
return false;
};
vm.getData(vm.eventid);
}
})();
サービス
(function() {
angular
.module('monitorApp')
.service('monitorData', monitorData);
monitorData.$inject = ['$http'];
function monitorData($http) {
var requestEvent = function(eventid) {
var gas = "Event " + eventid + " requested.."
console.log(gas);
return gas;
};
return {
requestEvent : requestEvent,
};
}
})();
0123を
'$ q'を使い、' defer.resolve'を使って動作させる必要があります。 – batmaniac7
'$ q'を注入して、ガスの代わりに' $ q.when(gas) 'を返してください。 – DerekMT12
成功/エラーの代わりに/ catchを使うべきです。成功/エラーハンドラは廃止予定です。 – DerekMT12