我正在研究离子项目,我试图从控制器调用工厂方法。此工厂方法位于单独的文件中。执行此操作时,我收到以下错误。
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
这里似乎有什么问题?感谢任何帮助。
答案 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) {