Angularjs - 将服务代码移动到另一个文件
Angularjs - Move service code to another file
我有这样的代码,
<script>
var MyApp = angular.module("MyApp", ['mc.resizer','chart.js'])
MyApp.controller('Ctrl1', function ($scope, $http,MyService) {
MyService.EnvDetails().then(function success(data){
$scope.httpdata = data;
}, function error(err){
console.log("error found"); return err;
});
});
</script>
并尝试将服务代码保存在另一个文件夹中的另一个 javascript 文件中,例如
var MyApp = angular.module("MyApp", []);
MyApp.service('MyService', function($http) {
this.EnvDetails = function() {
return $http({
url: '/myurl'
}).then(
function successCallback(response) {
//Some Code
return //Some;
}, function errorCallback(response) {
return response;
}
);
};
});
在 "MyService.js" 中保存此代码并在
中引用此文件
<script type="text/javascript" src="javascripts/MyService.js"></script>
这给我错误,
angular.js:11607 Error: [$injector:unpr] Unknown provider:
getEnvDetailsServiceProvider <- getEnvDetailsService <- Ctrl1
但是当我将服务代码与控制器代码一起放在同一个文件中时(除了第一行,var mainApp = angular.module("mainApp", []);),它可以工作。我一无所知,我缺少参考资料。请帮忙。
谢谢
当您保存到另一个文件时,无需再次添加模块化声明,
删除依赖项
//remove this line var MyApp = angular.module("MyApp", []);
MyApp.service('MyService', function($http) {
this.EnvDetails = function() {
return $http({
url: '/myurl'
}).then(
function successCallback(response) {
//Some Code
return //Some;
}, function errorCallback(response) {
return response;
}
);
};
});
var MyApp = angular.module("MyApp", []);
这一行创建了新模块。您应该只调用一次。
在其他文件中只需使用:
var MyApp = angular.module("MyApp");
获取当前存在的模块。
我有这样的代码,
<script>
var MyApp = angular.module("MyApp", ['mc.resizer','chart.js'])
MyApp.controller('Ctrl1', function ($scope, $http,MyService) {
MyService.EnvDetails().then(function success(data){
$scope.httpdata = data;
}, function error(err){
console.log("error found"); return err;
});
});
</script>
并尝试将服务代码保存在另一个文件夹中的另一个 javascript 文件中,例如
var MyApp = angular.module("MyApp", []);
MyApp.service('MyService', function($http) {
this.EnvDetails = function() {
return $http({
url: '/myurl'
}).then(
function successCallback(response) {
//Some Code
return //Some;
}, function errorCallback(response) {
return response;
}
);
};
});
在 "MyService.js" 中保存此代码并在
中引用此文件<script type="text/javascript" src="javascripts/MyService.js"></script>
这给我错误,
angular.js:11607 Error: [$injector:unpr] Unknown provider: getEnvDetailsServiceProvider <- getEnvDetailsService <- Ctrl1
但是当我将服务代码与控制器代码一起放在同一个文件中时(除了第一行,var mainApp = angular.module("mainApp", []);),它可以工作。我一无所知,我缺少参考资料。请帮忙。
谢谢
当您保存到另一个文件时,无需再次添加模块化声明,
删除依赖项
//remove this line var MyApp = angular.module("MyApp", []);
MyApp.service('MyService', function($http) {
this.EnvDetails = function() {
return $http({
url: '/myurl'
}).then(
function successCallback(response) {
//Some Code
return //Some;
}, function errorCallback(response) {
return response;
}
);
};
});
var MyApp = angular.module("MyApp", []);
这一行创建了新模块。您应该只调用一次。 在其他文件中只需使用:
var MyApp = angular.module("MyApp");
获取当前存在的模块。