未知提供者:角度为js的$ scopeProvider

时间:2017-04-26 11:22:33

标签: angularjs ionic-framework

我正在研究离子项目,我试图从控制器调用工厂方法。此工厂方法位于单独的文件中。执行此操作时,我收到以下错误。

element not found error

以下是我的文件:

services.js

<select id="testselect">
   <option disabled>1</option>
   <option disabled>2</option>
   <option disabled selected="selected">3</option>
</select>

alert($("#testselect").val()); //result null

controllers.js

Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- loginService

这里似乎有什么问题?感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您收到该错误是因为您无法在工厂中注入$scope。所以,将工厂改为:

.factory('loginService', function($http, constants) {

此外,在您的控制器中,注射未完全提供且出现故障。它应该如下:

.controller('AppCtrl', ['$scope', 'loginService', '$timeout', '$ionicModal',
    function($scope, loginService, $timeout, $ionicModal) {

答案 1 :(得分:1)

不能在工厂内使用范围变量。从工厂中删除scope注射器

更改此

.factory('loginService', function($scope, $http,constants) {

到这个

.factory('loginService', function($http,constants) {

同样在控制器中,遵循将服务注入字符串值时的格式

更改此

 .controller('AppCtrl',['$scope', 'loginService',function($scope, 
 $ionicModal, $timeout,loginService) {

到这个

 .controller('AppCtrl',['$scope','$ionicModal','$timeout','loginService', function($scope, 
 $ionicModal, $timeout,loginService) {