博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS中获取数据源的几种方式
阅读量:6408 次
发布时间:2019-06-23

本文共 1965 字,大约阅读时间需要 6 分钟。

 

在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中似乎这样写比较好:

<input type="submit" ng-click=""TodoService.todos.addodo(newTodo) />
在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;})

 

转载地址:http://bxqea.baihongyu.com/

你可能感兴趣的文章
Single Writer Principle
查看>>
我的友情链接
查看>>
探索Google App Engine背后的奥秘(5)- Datastore的设计(转载)
查看>>
linux系统启动流程
查看>>
[转]Windows Server 2012 和 System Center 2012 SP1,Virtual Machine Manager 中启用的软件定义的网络...
查看>>
我的友情链接
查看>>
安装配置管理 之 apt+synaptic 为Fedora core 4.0 中安装Nvida芯片显示卡及Ati 卡显示驱动...
查看>>
将密码加密
查看>>
JAVA学习笔记-sort
查看>>
程序员逼格提升完全指南
查看>>
YunTable开发日记(2) – 前三天的总结 (转载)
查看>>
bboss会话共享架构
查看>>
Target runtime Apache Tomcat v7.0 is not defined.
查看>>
udp vxlan分片
查看>>
Spring aop Aspect实现Service或Controller日志记录
查看>>
关键词怎样优化
查看>>
验证http服务以及dubbo服务方法
查看>>
ssh 免密码登录
查看>>
[转载] 财经郎眼20120616:广药“火拼”加多宝
查看>>
[转载] 浙江卫视中国蓝新台歌陈奕迅《梦想天空分外蓝》官方版MV
查看>>