2017-09-03 36 views
0

から私は次のようなエラー$ filterProviderを取得しています:不明なエラー:不明なプロバイダ: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)

EDIT:私は間違っているようですが、あなたは$ filterを注入することができます。

+0

こちらのドキュメントを確認してください: https://docs.angularjs.org/api/ng/service/$filter 回答を修正してください。 $ filterはデフォルトの角度サービスです。 – user3152549

関連する問題