<!DOCTYPE html>
<html>

  <head>
    <script data-require="angularjs@1" data-semver="1.4.4" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
    <script data-require="angularjs@1" data-semver="1.4.4" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-sanitize.min.js"></script>
    <script data-require="angularjs@1" data-semver="1.4.4" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-animate.min.js"></script>
    <script data-require="underscore.js@1.6.0" data-semver="1.6.0" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-app="weatherApp" ng-controller="MainCtrl">
    <h1>Today's weather</h1>
    
    {{ today }}
    
    <ul ng-repeat="number in evenNumbers">
      <li>
      {{number}}
      </li>
    </ul>
  </body>

</html>
// Code goes here

var underscore = angular.module('underscore', []);
underscore.factory('_', ['$window', function($window) {
  return $window._; // assumes underscore has already been loaded on the page
}]);

angular.module('weatherApp', ['underscore'])
  .service('weatherService', function () {
    return {
      "today": "cloudy"
    };
  })
  .controller('MainCtrl', ['$scope', '$log', 
    'weatherService','_', function ($scope, $log, weatherService, _) { 
      
    $scope.today = weatherService.today;
    $scope.evenNumbers = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 === 0; });
    
  }]);
/* Styles go here */

Using Angular modules