(function () { window.app.directive('mvcGrid', mvcGrid); function mvcGrid() { return { scope: { gridDataUrl: '@', title: '@', columns: '@?' }, template: '
' + '

{{vm.title}}

' + '
' + '

Loading...

' + '
' + '
' + '
', controllerAs: 'vm', controller: controller } } controller.$inject = ['$scope', '$http']; function controller($scope, $http) { var vm = this; vm.gridOptions = { enableHorizontalScrollbar: 0 } vm.loading = true; vm.title = $scope.title; if ($scope.columns) vm.gridOptions.columnDefs = angular.fromJson($scope.columns); $http.post($scope.gridDataUrl) .success(function (data) { vm.gridOptions.data = data; vm.loading = false; }); } })();