如何将angularJS服务调用到不包含在控制器中的控制器中?
如何将angularJS服务调用到不包含在控制器中的控制器中? productCtrl.js如何将angularJS服务调用到不包含在控制器中的控制器中?,angularjs,Angularjs,如何将angularJS服务调用到不包含在控制器中的控制器中? productCtrl.js var app = angular.module('myApp',[]); app.controller('productCtrl',['$scope','productService', function ($scope,campaignService) { $scope.getLocations = function() { productService.getPo
var app = angular.module('myApp',[]);
app.controller('productCtrl',['$scope','productService', function ($scope,campaignService)
{
$scope.getLocations = function() {
productService.getPorduct(response,status);
}
}]);
productService.js
var app = angular.module("myApp", []);
app.service('productService', ['ajaxService', function (ajaxService) {
this.getPorduct = function (successFunction, errorFunction) {
ajaxService.AjaxGet("http:location.com/product#?clientid=10",
successFunction, errorFunction);
};
}]);
ajaxService.js
var app = angular.module("myApp", []);
app.service('ajaxService', ['$http', 'blockUI', function ($http, blockUI) {
this.AjaxGet = function (route, successFunction, errorFunction) {
blockUI.start();
setTimeout(function () {
$http({ method: 'GET', url: route }).success(function (response, status, headers, config) {
blockUI.stop();
successFunction(response, status);
}).error(function (response) {
blockUI.stop();
errorFunction(response);
});
}, 1000);
}
}]);
当我访问控制器以从url获取结果时,出现以下错误
angular.js:13294错误:[ng:areq]参数'productCtrl'不是函数,未定义
确保您应该为每个应用程序定义一个同名的角度模块
,然后利用该模块将组件扩展到该模块
在这里,我可以看到您创建模块的三个地方,如
var app = angular.module("myApp", []);
它应该只创建一次,然后像angular.module(“myApp”)
一样使用,您希望将组件添加到此模块中
productService.js
&ajaxService.js
应使用最初由productCtrl.js
创建的模块(假设先加载productCtrl.js
)。您需要从中更改productService.js
&ajaxService.js
代码
var app = angular.module("myApp", []);
到
最好删除
var-app=angular.module(“myApp”,[])
这一行来自稍后加载的其他js文件,然后他们将使用app
变量,该变量已加载myApp
module仅使用[]调用模块一次,然后使用模块名称
// Creates the module
var app = angular.module("myApp", []);
// call the same module from your other files
var app = angular.module("myApp"); // no []
在具有
[]
的nut shell中,创建新实例,而不具有[]
的nut shell将检索现有/已创建的实例。确保您的脚本已订购,以便第一次调用始终使用[]
参数。Yo,我认为这是因为您正在不断重新定义应用程序。您正在执行var-app=angular.module(“myApp”,[]);在3个不同的地方。我刚从var-app=angular.module(“myApp”,[])更改;至
var-app=angular.module(“myApp”);`我收到以下错误“%angular.js:68未捕获错误:[$injector:nomod]模块“myApp”不可用!您要么拼错了模块名,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。`@SriChatala您可以添加html,以查看如何引用页面上的JS文件。我正在ASP.Net MVC应用程序中使用。@SriChatala那么,您必须从某个地方引用html页面上的JS文件,页面上的指令引用或通过bundle进行引用。现在我得到错误:[$injector:unpr]未知提供程序:blockUIProvider
// Creates the module
var app = angular.module("myApp", []);
// call the same module from your other files
var app = angular.module("myApp"); // no []