Вообще то ng-model нужно писать в input тэг а не в md-input-container
пользуйся ng-controller="PostReq as pr" чтобы область видимость была локальной а не глобальной, тогда все переменные с pr.***** будут именно локальны для котроллера PostReq.
<div layout-gt-sm="row" ng-controller="PostReq as pr">
<md-input-container flex>
<label>Name</label>
<input type="text" ng-model="pr.catName"/>
</md-input-container>
<md-input-container flex >
<label>Color</label>
<input type="text" ng-model="pr.catColor"/>
</md-input-container>
<md-input-container flex >
<label>Age</label>
<input type="text" ng-model="pr.catAge"/>
</md-input-container>
<md-button class="md-raised md-warn" ng-click="pr.sendReq()">Create cat</md-button>
</div>
Данные нет смыслы вкладывать так как они уже в скопе.
А контроллер должен быть таким:
app.controller('PostReq', function ($scope, $http) {
$scope.sendReq = function() {
alert( $scope.catName);
var intAge = parseInt($scope.catAge);
$http({method: 'POST',
url: 'http://127.0.0.1:8000/api/cat/',
data: {name: $scope.catName, color: $scope.catColor, age: intAge}
});
}});