AngularJS~集成的ajax和服务的注入

简介:

AngularJS很美,以至于迷倒了不少年青人和我这位大叔,它的美不仅仅是在写法上,而且在设计方法上都进乎于完美,用什么服务就注入什么服务,这样方法本来就很直观,程序员感觉直观了,程序在运行起来也按需要装载,这种按需要装载无论在性能上还是在表现力上都远远优于完全加载方式。

Ajax加载数据

$http服务提供了一组ajax的方法,加载数据,Get,Post都有支持,而$http服务在angular里就是被动态装载的,在面向对象里叫做DI或者IOC

       angular.module('todoApp', []).controller('RealDataController', function ($http, $scope) {
            var self = this;
            $http.get('/SOA/GetMenus').success(function (data) {
                self.dataList = data;
            }).error(function (data, status, headers, config) { });

上面是一种装载$http服务,并使用http服务的一种方法,而下面这种是通过别名的方法使用它,代码更加精简

     angular.module('todoApp',[]).controller('RealDataController2', ["$http", "$scope", function ($h, $s) {
            var self = this;
            $h.get('/SOA/GetMenus').success(function (data) {
                self.dataList = data;
            }).error(function (data, status, headers, config) { });
        }]);

通过上面的程序我们就可以把数据绑定到HTML元素上了

  <div ng-controller="RealDataController as real">
        <ul>
            <li ng-repeat="item in real.dataList">
                <span>{{item.MenuID}}</span>
                <span>{{item.MenuName}}</span>
                <span>{{item.UpdateDate | date:'yyyy-MM-dd HH:mm:ss Z'}}</span>
                <span><a href="javascript:void(0)" ng-click="real.edit()">编辑</a></span>|
                <span><a href="javascript:void(0)" ng-click="real.del(item)">删除</a></span>
            </li>
        </ul>
    </div>

结果如下

值得注意的是对于“删除”操作,本例也做了实现,它分为两方面,一个前台用户体验显示,二是后台数据删除,前台使用angular的双向绑定技术,将数组对象的元素删除,后台通过$http.post调用对应的api进行真实数据的删除即可,代码如下

       //删除
            self.del = function (o) {
                self.dataList.splice(self.dataList.indexOf(o), 1);
                //AJAX请求后台Api清除真实数据
                $http.post("/SOA/DelMenu?id=" + o.MenuID);
            }

在使用angular几天后,感觉它与knockoutjs有些类似的地方,当然,它在功能上即加强大,这是毋庸置疑的!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:AngularJS~集成的ajax和服务的注入,如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
前端开发 关系型数据库 MySQL
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
|
1月前
|
NoSQL Java Redis
小白版的springboot中集成mqtt服务(超级无敌详细),实现不了掐我头!!!
小白版的springboot中集成mqtt服务(超级无敌详细),实现不了掐我头!!!
272 1
|
1月前
|
SpringCloudAlibaba Dubbo Java
SpringCloud Alibaba集成Dubbo实现远程服务间调用
SpringCloud Alibaba集成Dubbo实现远程服务间调用
|
4月前
|
存储 安全 持续交付
NPM与外部服务的集成(下)
NPM与外部服务的集成(下)
|
4月前
|
存储 测试技术 持续交付
NPM与外部服务的集成(上)
NPM与外部服务的集成(上)
|
8月前
|
监控 Nacos 微服务
集成nacos,使用钉钉发送服务下线告警
我们在集成微服务框架的时候,涉及服务太多,如果是单节点的话,遇到凌晨服务挂起的问题会很麻烦。并且原生的监控也不是很理想。这里结合nacos,再通过钉钉来发送服务下线告警,这样可在第一时间确定服务异常并及时处理。
361 0
|
3月前
|
弹性计算 jenkins 持续交付
ECS热门应用 | 搭建个人版持续集成服务
基于ECS云服务器搭建Jenkins,快速实现灵活、可扩展的持续集成服务。
94346 7
|
3月前
|
关系型数据库 Serverless 数据库
基于DTS Serverless构建一站式实时数据集成服务
在企业的数字化转型背景下,企业需要数据中台数据实时集成,提升数据分析的时效性。DTS推出了从数据库将业务数据实时同步到数据仓库的解决方案,帮助客户挖掘商机,调整商业策略。同时,为了解决在客户业务负载多变的情况下灵活稳定支持数据传输的问题,DTS推出了Serverless版本,支持按需自动弹性伸缩链路规格,客户可以按需付费,无需关心底层资源。此外,DTS还提供了数据校验的增值能力,帮助检验数据一致性,以免影响客户业务决策的准确性
50213 1
|
3月前
|
前端开发 Java Spring
使用Spring Boot集成Shiro时出现了无法注入Service的问题
使用Spring Boot集成Shiro时出现了无法注入Service的问题
|
4月前
|
项目管理
系统集成项目管理中级第二章信息系统集成及服务(选择4分)
系统集成项目管理中级第二章信息系统集成及服务(选择4分)