2017-09-03 4 views
0

에서 나는 다음과 같은 오류 $ filterProvider 무엇입니까 :catch되지 않은 오류 : 알 수없는 제공 : myapp와

(Uncaught Error: Unknown provider: $filterProvider from myapp) while using following code. Please help to solve it.

Uncaught Error: Unknown provider: $filterProvider from myapp at angular.min.js:29

HTML을 ---------------------

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js">`</script> 
    <div ng-app="myapp" ng-controller="WeatherCtrl"> 
     <h2>Weather in Salzburg, Austria</h2> 
     <weather-icon cloudiness="{{ weather.clouds }}"></weather-icon> 
     <h3>Current: {{ weather.temp.current | temp:2 }}</h3> 
     min: {{ weather.temp.min | temp }}, max: {{ weather.temp.max | temp }} 
    </div> 

소스 코드 (의 .js) -------------------

'use strict'; 

var myapp = angular.module('myapp', []); 

myapp.factory('weatherService', function($http) { 
    return { 
     getWeather: function() { 
     var weather = { temp: {}, clouds: null }; 
     $http.jsonp('http://api.openweathermap.org/data/2.5/weather?q=Salzburg,at&units=metric&callback=JSON_CALLBACK&APPID=f9dbd911bc01df1d9ce563b2ba4d3209').success(function(data) { 
      if (data) { 
       if (data.main) { 
        weather.temp.current = data.main.temp; 
        weather.temp.min = data.main.temp_min; 
        weather.temp.max = data.main.temp_max; 
       } 
       weather.clouds = data.clouds ? data.clouds.all : undefined; 
      } 
     }); 

     return weather; 
     } 
    }; 
}); 

myapp.filter('temp', function($filter) { 
    return function(input, precision) { 
     if (!precision) { 
      precision = 1; 
     } 
     var numberFilter = $filter('number'); 
     return numberFilter(input, precision) + '\u00B0C'; 
    }; 
}); 

    myapp.controller('WeatherCtrl', function ($scope, weatherService) { 
     $scope.weather = weatherService.getWeather(); 
    }); 

    myapp.directive('weatherIcon', function() { 
     return { 
      restrict: 'E', replace: true, 
      scope: { 
       cloudiness: '@' 
      }, 
      controller: funct 

ion($scope) { 
       $scope.imgurl = function() { 
        var baseUrl = 'https://ssl.gstatic.com/onebox/weather/128/'; 
        if ($scope.cloudiness < 20) { 
         return baseUrl + 'sunny.png'; 
        } else if ($scope.cloudiness < 90) { 
         return baseUrl + 'partly_cloudy.png'; 
        } else { 
         return baseUrl + 'cloudy.png'; 
        } 
       }; 
      }, 
      template: '<div style="float:left"><img ng-src="{{ imgurl() }}"></div>' 
     }; 
    }); 
+1

아무런 문제가 없습니다! – Sajeetharan

+0

@JyotiRajSharma 문제가있는 경우이 [JSFiddle] (https://jsfiddle.net/0amjqtpv/)을 사용하여 문제를 복제하고 공유하십시오! –

답변

-1

나는 당신이 필터에 $ 필터를 삽입 할 수 있다고 생각하지 않습니다 정의, 여기처럼 : myapp.filter('temp', function($filter)

편집 : 내가 틀렸어, 당신은 $ 필터를 삽입 할 수 있어야합니다.

+0

여기에서 문서 확인 : https://docs.angularjs.org/api/ng/service/$filter 답변을 수정하십시오. $ filter는 기본 각도 서비스입니다. – user3152549