2014-05-20 3 views
1

이 주제에 대한 여러 가지 질문과 답변을 살펴 보았지만 오류없이 해결할 수없는 상황은 내 상황에 맞지 않습니다.Angular.js resolve throws 알 수없는 공급자 오류

여기에서 해결 방법으로 각도 경로에 대해 알아 보려면 튜토리얼을 따라 가면서 기존 앱에서이 예를 인라인으로 시도합니다 : http://www.undefinednull.com/2014/02/17/resolve-in-angularjs-routes-explained-as-story/.

이 오류가 발생합니다. 사용하고있는 해결 방법 및보기와 관련이있는 것 같습니다. 어떤 도움이라도 대단히 감사하겠습니다. 여전히 앵귤러를 처음 접하는 사람. 백 엔드에 레일을 사용 :

Error: [$injector:unpr] Unknown provider: myFriendsHotelProvider <- myFriendsHotel http://errors.angularjs.org/1.2.6/ $injector/unpr?p0=myFriendsHotelProvider%20%3C-%20myFriendsHotel at http://lala.dev/assets/angular.js?body=1:79:12 at http://lala.dev/assets/angular.js?body=1:3539:19 at Object.getService [as get] (http://lala.dev/assets/angular.js?body=1:3666:39) at http://lala.dev/assets/angular.js?body=1:3544:45 at getService (http://lala.dev/assets/angular.js?body=1:3666:39) at invoke (http://lala.dev/assets/angular.js?body=1:3688:13) at Object.instantiate (http://lala.dev/assets/angular.js?body=1:3709:23) at http://lala.dev/assets/angular.js?body=1:6759:28 at link (http://lala.dev/assets/angular-route.js?body=1:907:26) at nodeLinkFn (http://lala.dev/assets/angular.js?body=1:6213:13)

app.js.coffee

window.lala = angular.module "Lala", ["angularFileUpload", "ngResource", "ngAnimate", "ngRoute", "ui.bootstrap", "ui.bootstrap.setNgAnimate", "ui.sortable", 'ngTagsInput'] 

lala.config ['$httpProvider', ($httpProvider) -> 
    authToken = $("meta[name=\"csrf-token\"]").attr("content") 
    $httpProvider.defaults.headers.common["X-CSRF-TOKEN"] = authToken 
] 

lala.config ['$routeProvider', ($routeProvider) -> 
    $routeProvider 
    .when("/accomodation", 
     templateUrl: "/assets/templates/list.html" 
     controller: "AccomodationCtrl" 
     resolve: -> 
     myFriendsHotel: -> 
      hotelName: -> 
      "My Friend's Hotel" 
      roomNumber: -> 
      "100" 
    ) 
    .when("/home", 
     templateUrl: "/assets/templates/home.html" 
     controller: "HomePageCtrl" 
    ) 
    .when("/tags/:tag", 
     templateUrl: "/assets/templates/lists.html" 
     controller: "ListsCtrl" 
    ) 
    .when("/:filter", 
     templateUrl: "/assets/templates/lists.html" 
     controller: "ListsCtrl" 
    ) 
    .when("https://stackoverflow.com/users/:id", 
     templateUrl: "/assets/templates/profile.html" 
     controller: "UsersCtrl" 
    ) 

    .otherwise(redirectTo: '/recent') 
] 

accomodation_controller.js.coffee

lala.controller "AccomodationCtrl", ["$scope", "myFriendsHotel", ($scope, myFriendsHotel) -> 
    $scope.name = "Shidhin" 
    $scope.place = "Switzerland" 
    $scope.hotel = myFriendsHotel.hotelName() 
    $scope.roomno = myFriendsHotel.roomNumber() 
] 

list.html.haml

각도는 당신이 요구하는 종속성을 제공하는 방법을 알고하지 않기 때문에
.row 
    .col-xs-12.col-sm-6.col-md-8 
    %div 
     %h2 Hi, {{name}}. Welcome to {{place}} 
     %div The accomodation is arranged on <strong>{{hotel}}</strong> and room number is <strong>{{roomno}}</strong> 
    .col-xs-6.col-md-4 
    #right-column 
     great work 

angular.html.haml는

!!! 
%html 
    %head 
    %title Lala 
    %meta{content: "width=device-width, initial-scale=1.0", name: "viewport"}/ 
    = favicon_link_tag "lala_favicon.ico" 
    = stylesheet_link_tag "http://fonts.googleapis.com/css?family=Lato" 
    = stylesheet_link_tag "application", :media => "all" 
    = javascript_include_tag "application" 
    = csrf_meta_tags 

    :javascript 
     window.current_user_name = "#{current_user.try(:username)}" 
     window.current_user_image = "#{avatar_url(current_user) unless !current_user}" 


    %body{"ng-app" => "Lala"} 
    = render :partial => "shared/navbar" 
    #page-content{iScroll: ""} 
     .container.bordered 
     .row 
      .col-xs-12.col-sm-12.col-md-12.col-lg-12 
      .breadcrumb 
       {{breadcrumb}} 
     %div{"ng-view" => true} 
      = yield 
    #scroll-top 
     %a{:href => "#"} 
     back to top 
     %span.glyphicon.glyphicon-arrow-up 
+0

dnc253과 같이 작성한 경우 myFriendsHotelProvider 서비스 정의가 누락되었습니다. 그래서 코드 어딘가에 lala.factory "myFriendsHotel", -> 라인이 있어야합니다. 게시 된 사우스 캐롤라이나에서 찾을 수 없습니다. – bekite

+0

ng-controller = 'AccomodationCtrl'을 어디서나 선언하지 않았는지 확인하십시오. – Chandermani

+0

@bekite, 그렇지 않습니다. 문제가 해결 될 수 있도록 주입됩니다. – Chandermani

답변

-1

당신이 Unknown provider 오류가 발생 할 때마다, 그것은이다.

Unknown provider: myFriendsHotelProvider <- myFriendsHotel 

그래서 다음 질문은, 왜이 아닌 각도 주사한다 myFriendsHotel 할 수 있습니다 오류는 그 어떤 의존성을 알려줍니다? 정의 된 부분을 확인하고 포함 된 모듈이 앱에 포함되어 있는지 확인하십시오.

관련 문제