Значение угловой величины vs factory

Я новичок в angularjs. Я пытаюсь выяснить, когда использовать значение vs factory как услугу. Вот мой простой код из учебника egghead.io:

.value('Data', function(){
    return {message:"I am data from a service"};
  })

DataMessage привязан к полю ввода. Когда я запускаю страницу, в полях ввода ничего нет. Если я изменю значение на factory, в поле ввода появится сообщение по умолчанию.

Вот контоллер:

controller('FirstCtrl', ['$scope','Data',function($scope, Data) {
    $scope.data = Data;
    console.log('exiting first controller');
  }])

и индексный файл:

<div ng-controller="FirstCtrl">
   <input type="text" ng-model="data.message">
   <h1>{{data.message}}</h1>
</div>

Почему страница используется при использовании значения? Мое предположение заключается в том, что значение не вычисляется или не вычисляется, когда приложение запускается, тогда как factory является?

Кроме того, где я могу найти некоторую документацию по $provision? Спасибо всем.

Ответ 2

Вы должны объявить контроллер как

   app.controller('DataController', ['Data', function DataController(Data){
      this.data = Data;
   }]);

а затем используйте его на своей странице, как в моем коде

<div ng-controller='DataController as dataController'>
      {{dataController.data()}}
   </div>