Angularjs的值vs工厂



我刚接触angularjs。我正试图找出何时使用价值vs工厂作为一种服务。这是我的简单代码从蛋头。io教程:

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

数据。消息被绑定到一个输入字段。当我启动页面时,输入字段中没有任何内容。如果我将value更改为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>

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

另外,我在哪里可以找到一些关于$提供的文档?谢谢大家。

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

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

砰砰作响

参见provider .value(),以及关于$ provider (value, constant, service, factory, decorator, provider)的视频

您应该将控制器声明为

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

然后在你的页面中使用它,比如在我的代码

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

最新更新