为了账号安全,请及时绑定邮箱和手机立即绑定

请问该怎么在angularjs的config中使用service?

请问该怎么在angularjs的config中使用service?

胡子哥哥 2019-09-02 09:05:42
怎么在angularjs的config中使用service
查看完整描述

5 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

在angularjs的config中使用service的方法:
它是一个可注入的构造器,在AngularJS中它是单例的,用它在Controller中通信或者共享数据都很合适
var app = angular.module('app' ,[]);

app.config(function ($provide) {
$provide.service('movie', function () {
this.title = 'The Matrix';
});
});

app.controller('ctrl', function (movie) {
expect(movie.title).toEqual('The Matrix');
});

语法糖
app.service('movie', function () {
this.title = 'The Matrix';
});

在service里面可以不用返回东西,因为AngularJS会调用new关键字来创建对象。但是返回一个自定义对象好像也不会出错。

查看完整回答
反对 回复 2019-09-07
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

1.第一种是通过调用Context.startService()启动,调用Context.stopService()结束,startService()可以传递参数给Service
2.第二种方式是通过调用Context.bindService()启动,调用Context.unbindservice()结束,还可以通过ServiceConnection访问Service。
在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次。

查看完整回答
反对 回复 2019-09-07
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

可以通过在activity中 设置事件 。当事件出发时 利用intent
Intent intent=new Intent(MainActivity.this, ServiceDemo.class);
switch (v.getId())
{ case R.id.startBtn:
startService(intent); 启动
break;
case R.id.stopBtn:
stopService(intent); 停用
break;
default:
break;




查看完整回答
反对 回复 2019-09-07
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

Service的典型示例
在AngularJS中,Service都是单例的实体,通常会将Service作为向后台交互的数据提供者,所有的需要数据的组件只需要依赖于这个Service即可。
var app = angular.module('MyApp', []);

app.factory('SearchSettingService',
['$http', '$q', function($http, $q) {
return {
setting: function() {
var deferred = $q.defer();

$http.get('/settings.json').success(function(result) {
deferred.resolve(result);
}).error(function(result) {
deferred.reject("network error");
});

return deferred.promise;
}
};
}]);
$httpBackend
测试的时候,我们不需要真实的发送HTTP请求来获取数据。如果可以只测试Service的逻辑,当发送请求时,我们将这个请求拦截下来,然后返回一个预定义好的数据即可:
it('should have settings from http request', function() {
var result;
var expected = {
"period": "day",
"date": "Sat Dec 21 12:56:53 EST 2013",
};

httpBackend.expectGET('/settings.json').respond(expected);

var promise = settingService.setting();
promise.then(function(data) {
result = data;
});



查看完整回答
反对 回复 2019-09-07
  • 5 回答
  • 0 关注
  • 1005 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信