Edit in JSFiddle

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

myApp.controller('MyCtrl', function($scope, Chronicle) {
    //initializtion of variables
    $scope.obj = {};
    $scope.obj.lists = [];
    $scope.obj.lists.push({});
    $scope.obj.lists[0].list = [];
    $scope.obj.lists[0].str = "String";
    $scope.canUndo = false;
    $scope.canRedo = false;
    
    //Creation of the Chronicle object
    $scope.numChronicle = Chronicle.record('obj.lists[0]', $scope);
    $scope.canUndoRedo = function(){
        $scope.canUndo = $scope.numChronicle.canUndo();
        $scope.canRedo = $scope.numChronicle.canRedo();
    };
    $scope.numChronicle.addOnAdjustFunction($scope.canUndoRedo);
    $scope.numChronicle.addOnUndoFunction($scope.canUndoRedo);
    $scope.numChronicle.addOnRedoFunction($scope.canUndoRedo);
    
    //Functions tied to buttons
    $scope.undo = function(){
        $scope.numChronicle.undo()
    };
    $scope.redo = function(){
        $scope.numChronicle.redo()
    };
    $scope.addDog = function(){
        $scope.obj.lists[0].list.push("dog");
    };
    $scope.addCat = function(){
        $scope.obj.lists[0].list.push("cat");
    };
});
<div ng-controller="MyCtrl">
  <input type="text" ng-model="obj.lists[0].str">
  <button ng-click="addDog()">Dog</button>
  <button ng-click="addCat()">Cat</button>
  <button ng-click="undo()" ng-if="canUndo">Undo</button>
  <button ng-click="redo()" ng-if="canRedo">Redo</button>
      <div ng-repeat="element in obj.lists[0] track by $index">{{element}}</div>
</div>

              
            
          
            
              

External resources loaded into this fiddle: