angularjs获取php数据类型,三种AngularJS中获取数据源的方式

这篇文章主要介绍了三种AngularJS中获取数据源的方式,需要的朋友可以参考下

在AngularJS中,可以从$rootScope中获取数据源,也可以把获取数据的逻辑封装在service中,然后注入到app.run函数中,或者注入到controller中。本篇就来整理获取数据的几种方式。

■ 数据源放在$rootScope中

var app = angular.module("app",[]);

app.run(function($rootScope){

$rootScope.todos = [

{item:"",done:true},

{item:"",done:false}

];

})

{{todo.item}}

以上,把数据源放在$rootScope中的某个字段中,很容易被重写。

■ 数据源放在service中,把servie注入到run函数中

app.service("TodoService", function(){

this.todos = [

{item:"",done:true},

{item:"",done:false}

];

})

app.run(function($rootScope, TodoService){

$rootScope.TodoService = TodoService;

})

{{todo.item}}

在html中似乎这样写比较好:

在service中增加一个方法:

app.service("TodoService", function(){

this.todos = [

{item:"",done:true},

{item:"",done:false}

];

this.addTodo = fucntion(newTodo){

this.todos.push({item:newTodo, done:false})

}

})

■ 数据源放在service中,把servie注入到controller中

app.controller("TodoCtrl", function($scope, TodoService){

this.TodoService = TodoServce;

})

在对应的html中:

{{todo.item}}

■ 数据源放在service中,把servie注入到controller中,与服务端交互

在实际项目中,service还需要和服务端交互。

var app = angular.module("app",[]);

app.service("TodoService", function($q, $timeout){

this.getTodos = function(){

var d = $q.defer();

//模拟一个请求

$timeout(function(){

d.resolve([

{item:"", done:false},

...

])

},3000);

return d.promise;

}

this.addTodo = function(item){

this.todos.push({item:item, done:false});

}

})

app.controller("TodoCtrl", function(TodoService){

var todoCtrl = this;

TodoService.getTodos().then(function(result){

todoCtrl.todos = result;

})

todoCtrl.addTodo = TodoService.addTodo;

})

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值