我刚接触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>