[英]Injecting service to controller fails in angularJS
我的代碼是這樣的
Controller.js
var errorMessage = { MessageHeader: "Error", Message: "Something went wrong. Please try again later." };
angular.module('RateRequestApp.controllers', []).controller('ReadOnlyController', [
'$scope', 'updateTruckNoService', 'messageModalService', '$modal',
function ($scope, updateTruckNoService, messageModalService, $modal) {
messageModalService.showMessageModal(errorMessage);
}
]);
Services.js
angular.module('RateRequestApp.services').factory('messageModalService', [ '$modal', messageModalService]);
function messageModalService($modal) {
function showMessageModal(response) {
var modalInstance = $modal.open({
templateUrl: 'MessageModal.html',
controller: 'ModalInstanceCtrl',
resolve: {
items: function () {
return response;
}
}
});
};
}
App.JS
angular.module('RateRequestApp', [
'RateRequestApp.services',
'RateRequestApp.controllers',
'ui.bootstrap',
'angular-loading-bar'
]);
一切對我來說還不錯,但這會引發錯誤
TypeError:無法讀取未定義的屬性“ showMessageModal”
在線
messageModalService.showMessageModal(errorMessage);
showMessageModal
函數僅在您的messageModalService
函數中定義。 您沒有歸還它,所以沒有人可以訪問它。
實際上,您什么都不返回,因此工廠在調用時會產生undefined
內容。
function messageModalService($modal) {
function showMessageModal(response) {
// ...
}
return {showMessageModal: showMessageModal};
}
或者您也可以執行以下操作:
function messageModalService($modal) {
return {
showMessageModal: function (response) {
// ...
}
};
}
很簡單,您的服務“ messageModalService”不返回方法“ showMessageModal”,請嘗試從方法method messageModalService返回,如以下示例所示,它應該可以工作:)
return{
showMessageModal: showMessageModal
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.