Here’s a quick tip on how to pass a complex model from server side to an AngularJS controller.
The idea is to serialize the model to json (I am using the majestic Newtonsoft library for that), store it into a javascript variable and then create a provider with it on the AngularJS application that will be injected in the controller.

Here’s the controller code:

[csharp]

myApp.controller(‘myController’, [‘$scope’, ‘viewModel’,
   function ($scope,  viewModel) {
        $scope.viewModel = viewModel;
   }]
);

[/csharp]

and here’s the MVC View

[csharp]
<div ng-controller="myController"> …. </div>
<script type="text/javascript">
var model = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model));
myApp.value("viewModel", model);
</script>
[/csharp]