-3

现在我已经在问题中添加了代码。 controllers.js services.js

并获取此错误。 angular.js:13642 Error:[$ injector:unpr] http://errors.angularjs.org/1.5.6/ $ injector/unpr?p0 =%24scopeProvider%20%3C-%20%24scope%20%3C-%20CF at angular.js:38 at angular .js:4501 at Object.d [as get](angular.js:4654) at angular.js:4506 at d(angular.js:4654) at e(angular.js:4678) at Object .invoke(angular.js:4700) 的对象$得到(angular.js:4547)。 在Object.invoke(angular.js:4708) 在angular.js:4507

'use strict'; 
 
angular.module("carsApp") 
 
    .controller("carsController", ["$scope", "CF", 
 
    function($scope, CF) { 
 
     $scope.tab = 1; 
 
     $scope.filterTxt = ''; 
 
     $scope.showDetails = false; 
 
     $scope.cars = CF.getCars(); 
 
     $scope.selectMenu = function(setTab) { 
 
     $scope.tab = setTab; 
 
     if (setTab === 2) { 
 
      $scope.filterTxt = "BMW"; 
 
     } else if (setTab === 3) { 
 
      $scope.filterTxt = "HONDA"; 
 
     } else if (setTab === 4) { 
 
      $scope.filterTxt = "TOYOTA"; 
 
     } else { 
 
      $scope.filterTxt = ""; 
 
     } 
 
     } 
 
     $scope.isSelected = function(val) { 
 
     return ($scope.tab === val); 
 
     } 
 
     $scope.toggleDetails = function() { 
 
     $scope.showDetails = !$scope.showDetails; 
 
     } 
 
    } 
 
    ]);

//Sser 
 
angular.module("carsApp") 
 
    .factory("CF", function($scope) { 
 
    var carFact = {}; 
 
    $scope.cars = [{ 
 
     id: '1', 
 
     make: 'BMW', 
 
     name: 'BMW', 
 
     image: 'images/bmw/bmw1.png', 
 
     model: '2005', 
 
     price: '4500', 
 
     description: 'A very nice maintained car. Good road grip, no work required. Next inspection March 2017', 
 
     comment: '' 
 
    }, { 
 
     id: '2', 
 
     make: 'HONDA', 
 
     name: 'Civic', 
 
     image: 'images/honda/honda1.png', 
 
     model: '2016', 
 
     price: '25000', 
 
     description: 'Honda is a nice car. Good road grip, no work required. Next inspection March 2017', 
 
     comment: '' 
 
    }, ]; 
 
    carFact.getCars = function() { 
 
     return cars; 
 
    }; 
 

 
    carFact.getCar = function(index) { 
 
     return cars[index]; 
 
    }; 
 
    return carFact; 
 
    });

+2

请在问题的代码。如果你可以显示完整的错误信息(未定义的angular.js),也会很好。 – tasseKATT

+0

angular.js:13642错误:[$ injector:unpr] http://errors.angularjs.org/1.5.6/$injector/unpr?p0=%24scopeProvider%20%3C-%20%24scope%20%3C - %20CF at angular.js:38 at angular.js:4501 at Object.d [as get](angular.js:4654) at angular.js:4506 at d(angular.js:4654) 在E(angular.js:4678) 在Object.invoke(angular.js:4700)。 的对象$得到(angular.js:4547) 在Object.invoke(angular.js:4708) 在角.js:4507 – Naeem

+0

请不要用截图提问。在问题中包含*实际代码*。此外,您应该编辑该问题以添加错误消息;留言/评论中的代码没有格式化,这使得他们很难解释。 – Claies

回答

0

Factory Provider没有一个范围可变的概念,在相同的意义上,控制器一样。如果有必要,可以向该工厂注入另一个值 - 例如:

angular.module('carsApp', []) 
.value('topCarId','1') 
.factory('CF', ['topCarId',function(topCarId) { 
     //this factory provider can utilize topCarId 
}); 

这里是一个简化示例,其中提示用户选择一辆汽车。它利用ngOptions将汽车添加到选择列表中,虽然也许您的代码在按钮或其他元素上调用了selectMenu()

angular.module('carsApp', []) 
 
    .factory('CF', function() { 
 
    var cars = [{ 
 
     id: '1', 
 
     make: 'BMW', 
 
     name: 'BMW', 
 
     description: 'A very nice maintained car...' 
 
    }, { 
 
     id: '2', 
 
     make: 'Honda', 
 
     name: 'Civic', 
 
     description: 'Honda is a nice car...' 
 
    }, 
 
{ 
 
     id: '3', 
 
     make: 'Toyota', 
 
     name: 'Camry', 
 
     description: 'Toyota is a nice car...' 
 
    }]; 
 
    return { 
 
     getCars: function() { 
 
     return cars; 
 
     } 
 
    }; 
 
    }) 
 
    .controller('carsController', ['$scope', 'CF', 
 
    function($scope, CF) { 
 
     $scope.cars = CF.getCars(); 
 
     $scope.filterTxt = ''; 
 
     $scope.tab = 0; 
 
     $scope.car = {}; 
 
     $scope.selectMenu = function(setTab) { 
 
     $scope.tab = setTab; 
 
     $scope.filterTxt = $scope.car.make; 
 
     } 
 
    } 
 
    ]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="carsApp" ng-controller="carsController"> 
 
    Choose a car: <select ng-model="car" ng-options="car as car.name for car in cars track by car.id" ng-change="selectMenu(car.id)"></select> 
 
    
 
    <div>FilterTxt: <span ng-bind="filterTxt"></span></div> 
 
    <div>Tab: <span ng-bind="tab"></span></div> 
 
</div>

相关问题