Когда я загружаю представление, я хотел бы запустить некоторый код инициализации в соответствующем контроллере.
Для этого я использовал директиву ng-init для основного элемента моего представления:
<div ng-init="init()">
  blah
</div>
и в контроллере:
$scope.init = function () {
    if ($routeParams.Id) {
        //get an existing object
        });
    } else {
       //create a new object
    }
    $scope.isSaving = false;
}
Первый вопрос: это правильный способ сделать это?
Далее, у меня есть проблема с последовательностью происходящих событий. В представлении у меня есть кнопка "Сохранить", которая использует директиву ng-disabled как таковую:
<button ng-click="save()" ng-disabled="isClean()">Save</button>
функция isClean() определена в контроллере:
$scope.isClean = function () {
    return $scope.hasChanges() && !$scope.isSaving;
}
Как вы можете видеть, он использует флаг $scope.isSaving, который был инициализирован в функции init().
ПРОБЛЕМА: при загрузке представления функция isClean называется  до функцией init(), поэтому флаг isSaving равен undefined. Что я могу сделать, чтобы это предотвратить?