AngularJS 1.0rc1 dataTables object source

HTML

<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/redmond/jquery-ui.css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.8.2/css/jquery.dataTables.css">
 
<div ng-app="tableExample">
    <div ng-controller="DataTableTestController">   
        {{ coisas }}
        <table my-table options="options" class="jquery-datatables"></table>
    </div>
</div>

CSS

</style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<!-- DataTables -->
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.8.2/jquery.dataTables.min.js"></script>

<script src="http://code.angularjs.org/1.2.9/angular.js"></script>
<style>

.ng-invalid { border: 1px solid red; } 
body { font-f
body, td, th { font-size: 14px; margin: 0; }
table { border-collapse: separate; border-spacing: 2px; display: table; margin-bottom: 0; margin-top: 0; -moz-box-sizing: border-box; text-indent: 0}
a:link, a:visited, a:hover { color: #5D6DB6; text-decoration: none; }
.error { color: red; }
.ui-helper-hidden { display: none;}

JavaScript

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

dialogApp.directive('myTable', function ($compile) {
    return {
        restrict: 'E, A, C',
        link: function (scope, element, attrs, controller) {
            var dataTable = element.dataTable(scope.options);

            scope.$watch('options.aaData', handleModelUpdates, true);

            function handleModelUpdates(newData) {
                var data = newData || null;
                if (data) {
                    dataTable.fnClearTable();
                    dataTable.fnAddData(data);
                }
            }
        },
        scope: {
            options: "="
        }
    };
}); 

dialogApp.controller('DataTableTestController', ['$scope', function($scope){
    $scope.coisas = "coisas";
    $scope.botaoEdit = function(a){
        console.log(a);
    };

    $scope.options = {
        "sDom": '<"H"lf>t<"F"ip>',
        "bStateSave": true,
        "bPaginate": false,
        "bLengthChange": false,
        "bFilter": true,
        "bSort": true,
        "bInfo": true,
        "bAutoWidth": false,
        "sPaginationType": "full_numbers",
        aoColumns: [{
            "sTitle": "name"
        }, {
            "sTitle": "price"
        }, {
            "sTitle": "category"
        }, {
            "sTitle": "action"
        }, null],
        "aaSorting": [[ 0, "asc" ]],
        aoColumnDefs: [
            { "bSortable": true, "aTargets": [0] },
            { "bSortable": false, "aTargets": [1,2,3,4] }
        ],
        bJQueryUI: true,
        aaData: []
    };

    var dbStuff = [
        {
            "name": "Stuff1",
            "price": 10000000.00,
            "description": "Expensive Stuff",
            "wanna":"buy"
        },
        {
            "name": "Stuff2",
            "price": 20000000.00,
            "description": "Oh my...",
            "wanna":"have money"
        }
    ]
    
    for (var key in dbStuff){
        $scope.options.aaData.push([dbStuff[key].name,
 ...