我的代码就像这样
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);
答案 0 :(得分:2)
showMessageModal
功能只在您的messageModalService
功能中定义。你没有归还它,所以没有人可以访问它。
事实上,你没有返回任何东西,因此你的工厂在调用它时会产生undefined
。
function messageModalService($modal) {
function showMessageModal(response) {
// ...
}
return {showMessageModal: showMessageModal};
}
或者您也可以这样做:
function messageModalService($modal) {
return {
showMessageModal: function (response) {
// ...
}
};
}
答案 1 :(得分:1)
您的服务很简单" messageModalService"没有返回方法' showMessageModal',尝试返回表格下面的sampledModalService,它应该工作:)
return{
showMessageModal: showMessageModal
};