2016-02-17 5 views
0
var myApp = angular.module("MyApp", ['ngRoute']); 

myApp.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/', { 
     templateUrl: 'partials/cart.php', 
     controller: 'ctrl', 
     resolve: { 
            categories: function(cartService){ 
       console.log('inside resolve categories') 
                return cartService.getCategories(); 
            } 
      }   
     }). 
     otherwise({ 
     redirectTo: '/' 
     }); 
}]); 



myApp.controller('ctrl', function (categories, $scope) {  
    $scope.items = categories;  
}); 


myApp.service("cartService", function ($http, $q) {  
    this.getCategories = function() { 
     var deferred = $q.defer();  
     $http.get('js/categories.js') 
      .then(function (response) { 
       deferred.resolve(response.data); 
      }); 

     return deferred.promise;  
    }  
}); 


myApp.run(['$rootScope',function($rootScope){  
    $rootScope.stateIsLoading = false; 
    $rootScope.$on('$routeChangeStart', function(e, current, pre) { 
     $rootScope.stateIsLoading = true; 
     var fullRoute = current.$$route.originalPath; 
     if(fullRoute == '/') 
     { 
      console.log('load categoreis and products') 
     }    
    }); 
    $rootScope.$on('$routeChangeSuccess', function() { 
     $rootScope.stateIsLoading = false; 
     console.log('route changed'); 
    }); 
    $rootScope.$on('$routeChangeError', function() { 
     //catch error 
    });  
}]); 

Я поместил директивы нг-приложений и нг-контроллера в верхней части HTMLНеизвестная ошибка поставщика - AngularJS App вопрос

<html lang="en" ng-app="MyApp" ng-controller="ctrl"> 

Но когда я запускаю HTML я получаю следующее сообщение об ошибке

Error: [$injector:unpr] Unknown provider: categoriesProvider <- categories <- ctrl

Как это исправить?

Edit: Если я удалю нг-контроллер = «Ctrl» из HTML, то никаких ошибок

+0

@Tushar это не имеет значения. угловая будет определять правильную зависимость. – eltonkamami

+0

Я использую 1.3.14 версию angular-route.js и angular.js – grandcoder

+0

Можете ли вы объяснить, почему вы отказались? – Tek

ответ

1

Вы получили эту ошибку только потому, что вы используете один и тот же контроллер для обоих index.php и 'обертоны/cart.php'

Create a separate controller for 'partials/cart.php' to resolve this problem

фрагмент кода:

// Code goes here 
 
var app = angular.module('app', ['ngRoute']); 
 

 
app.controller('indexCtrl', function($scope) { 
 
    $scope.title = 'Header'; 
 
}); 
 

 

 
app.config(function($routeProvider) { 
 
    $routeProvider.when('/', { 
 
    template: "<ul><li ng-repeat='item in items'>{{item}}</li></ul>", 
 
    controller: 'categoryCtrl', 
 
    resolve: { 
 
     categories: function(cartService){ 
 
      return cartService.getCategories(); 
 
     } 
 
     } 
 
    }); 
 
    
 
}); 
 

 
app.controller('categoryCtrl', function (categories, $scope) { 
 
    $scope.items = categories; 
 
}); 
 

 
app.service("cartService", function() { 
 
    this.getCategories = function() { 
 
    return ['A', 'B', 'C']; 
 
    }; 
 
});
<html ng-app="app"> 
 

 
    <head> 
 
    <script data-require="[email protected]" data-semver="1.4.9" src="https://code.angularjs.org/1.4.9/angular.js"></script> 
 
    <script data-require="[email protected]" data-semver="1.4.2" src="https://code.angularjs.org/1.4.2/angular-route.js"></script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script src="script.js"></script> 
 
    </head> 
 

 
    <body ng-controller="indexCtrl"> 
 
    <h1>{{title}}</h1> 
 
    <div ng-view></div> 
 
    </body> 
 

 
</html>

0

вы должны определить категории обслуживания/завод, который впрыскивается в контроллере «Ctrl».

+0

У меня есть «cartService» в скрипте. – grandcoder

 Смежные вопросы

  • Нет связанных вопросов^_^