angularjs值vs工厂

U-L*_*U-L 12 angularjs

我是angularjs的新手.我试图找出何时使用价值与工厂作为服务.这是我在egghead.io教程中的简单代码:

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

Data.message绑定到输入字段.当我启动页面时,输入字段中没有任何内容.如果我将值更改为factory,则默认消息将显示在输入字段中.

这是控制器:

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

和索引文件:

<div ng-controller="FirstCtrl">
   <input type="text" ng-model="data.message">
   <h1>{{data.message}}</h1>
</div>
Run Code Online (Sandbox Code Playgroud)

为什么使用值时页面是空白的?我的假设是,应用程序启动时不计算或计算值,而工厂是?

另外,我在哪里可以找到有关$ provide的文档?谢谢你们.

Mar*_*cok 19

将值设置为对象,而不是函数:

app.value('Data', {message:"I am data from a service"});
Run Code Online (Sandbox Code Playgroud)

Plunker

另请参阅provide.value()和此视频关于$ provide(值,常量,服务,工厂,装饰器,提供者)