Angular - Module

Module with controller, filter, and directive.

HTML

<script src="http://code.angularjs.org/angular-1.0.1.js"></script>
<body ng-app="myApp" ng-controller="myCtrl">
    <input ng-model="msg" />
    <p my-dctv >
        {{msg | myUpperFilter }}
    </p>
    
<table style="border-collapse: collapse; width: 50px">
                        <tr ng-repeat="product in foos | partition:2">
                           <td style="border: 1px Dashed #bfbfbf; width: 20px;" ng-repeat="item in product">{{item.id}}
                            </td></tr></table>
    <button ng-click="change()" value="Change"> Change</button>

</body>

JavaScript

// the main (app) module
var myApp = angular.module("myApp", []);

// add a controller
myApp.controller("myCtrl", function($scope) {
    
   
    $scope.fus=[{"id":"12"}]; 
    
    $scope.msg = "hello world";
    
     $scope.foos=[{"id":"10","name":"name 10","description":"description 1","field3":"field3 10","field4":"field4 10","field5 ":"field5 10"}, 
        {"id":"11","name":"name 11","description":"description 1","field3":"field3 11","field4":"field4 11","field5 ":"field5 11"}, 
        {"id":"12","name":"name 12","description":"description 1","field3":"field3 12","field4":"field4 12","field5 ":"field5 12"}, 
        {"id":"13","name":"name 13","description":"description 1","field3":"field3 13","field4":"field4 13","field5 ":"field5 13"}, 
        {"id":"14","name":"name 14","description":"description 1","field3":"field3 14","field4":"field4 14","field5 ":"field5 14"}, 
        {"id":"15","name":"name 15","description":"description 1","field3":"field3 15","field4":"field4 15","field5 ":"field5 15"}, 
        {"id":"16","name":"name 16","description":"description 1","field3":"field3 16","field4":"field4 16","field5 ":"field5 16"}];
    $scope.foos_=angular.copy($scope.foos);
    $scope.change=function(){
        if($scope.foos.toString()==$scope.fus.toString())
        {
        $scope.foos=$scope.foos_;
        }
            else
            {
     $scope.foos=$scope.fus
            }
     
    }; 
});


// add a filter
myApp.filter("myUpperFilter", function() {
    return function(input) {
        return input.toUpperCase();
    }
});

myApp.filter('partition', function() {
  var cache = {};
  var filter = function(arr, size) {
    if (!arr) { return; }
    var newArr = [];
    for (var i=0; i<arr.length; i+=size) {
      newArr.push(arr.slice(i, i+size));
    }
    var arrString = JSON.stringify(arr);
    var fromCache = cache[arrString+size];
    if (JSON.stringify(fromCache) === JSON.stringify(newArr)) {
      return fromCache;
    }
   ...