博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS中使用$http对MongoLab数据表进行增删改查
阅读量:6080 次
发布时间:2019-06-20

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

 

本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查。

主页面:

 

 

以上,页面上显示course_list.html,add_course.html和edit_course.html的内容显示与toggleAddCourseView和toggleEditCourseView值有关,而toggleAddCourseView和toggleEditCourseView值将通过方法来控制。

■ 在Mongolab上创建数据库和表
→ https://mongolab.com
→ 注册
→ 登录
→ Create new
→ 选择Single-node
勾选Sandbox,输入Database name的名称为myacademy。
→ 点击新创建的Database
→ 点击Add collection
名称为course
→ 点击course这个collection。
→ 多次点击add document,添加多条数据
■ 控制器

 

$scope.courses = [];var url = "https://api.mongolab.com/api/1/databases/my-academy/collections/course?apiKey=myAPIKey";var config = {params: {apiKey: "..."}};$scope.toggleAddCourseNew = false;$scope.toggleEditCourseView = false;//列表$scope.loadCourses = function(){        $http.get(url, config)        .success(function(data){            $scope.courses = data;        });}//添加$scope.addCourse = function(course){    $http.post(url, course, config)        .success(function(data){            $scope.loadCourses();        })}//显示修改$scope.editCourse = function(course){    $scope.toggleEditCourseView = true;    $scope.courseToEdit = angular.copy(course);}//修改$scope.updateCourse = function(courseToEdit){    var id = courseToEdit._id.$oid;    $http.put(url + "/" + id, courseToEdit, config)        .success(fucntion(data){            $scope.loadCourses();        })}//删除$scope.delteCourse = function(course){    var id = course._id.$oid;    $http.delete(url+ "/" + id, config)        .success(function(data){            $scope.loadCourses();        })}$scope.toggleAddCourse = function(flag){    $scope.toggleAddCourseView = flag;}$scope.toggleEditCourse = fucntion(flag){    $scope.toggleEditCourseView = flag;}

 

■ course_list.html 列表

 

...    {
{$index+1}} {
{course.name}} {
{course.category}} {
{course.timeline}} {
{course.price | currency}}

 

■ add_course.html 添加

 

 

■ edit_course.html 更新

 

 

当然还可以通过factory的方式创建一个服务,把有关增删改查的逻辑封装在里面。

 

myApp.factory("courseDataService", function($http, $q){    return {        getCourses: function(){            var deferred = $q.defer;            $http.get(url, config)                .success(function(data){                    defered.resolve(data);                })                .error(function(error){                    deferred.reject(error);                })            return deferred.promise;        },        addCourse: function(course){            var deferred = $q.defer();                        $http.post(url, course, config)                .success(function(data){                    deferred.resolve(data);                })                .error(function(error){                    deferred.reject(error);                });                        return defered.promise;        }    }})

 

然后在controller中按如下引用:

 

myApp.controller("AppCtrl", function($scope, $http, courseDataService){    ...    $scope.loadCourses = courseDataService.getCourses()        .then(success, error);        function success(data){        $scope.courses = data;    }        function error(e){        console.log("error:", e);    }        $scope.addCourse = function(course){        courseDataService.addCourse(course).then(            function(data){                $scope.loadCourses();            },            function(e){                console.log("error:" + e);            }        );    }})

 

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

你可能感兴趣的文章
Python ImportError: cannot import name
查看>>
SegmentFault 社区访谈 | 有明,不仅仅是死亡诗社的程序猿
查看>>
【全栈React】第30天: 总结和更多的资源
查看>>
初探函数节流和函数防抖—以项目为例(更新es6语法)
查看>>
需要学习的mysql函数
查看>>
sublime-text 使用记录
查看>>
Python: 函数与方法的区别 以及 Bound Method 和 Unbound Method
查看>>
从 Google 的一道面试题说起·
查看>>
GitHub采用了新的GraphQL API
查看>>
从责任界定和问题预警角度 解读全栈溯源对DevOps的价值
查看>>
面向桌面开发的Windows Template Studio
查看>>
TriggerMesh开源用于多云环境的Knative Event Sources
查看>>
SSPL的MongoDB再被抛弃,GUN Health也合流PostgreSQL
查看>>
微软表示Edge的性能更优于Chrome和Firefox
查看>>
基于容器服务的持续集成与云端交付(三)- 从零搭建持续交付系统
查看>>
Microsoft使用.NET Core SDK遥测数据
查看>>
《Spark GraphX in Action》书评及作者访谈
查看>>
IBM推出了针对区块链部署的云服务
查看>>
关于5G被激烈讨论的那些争端和冲突
查看>>
使用Apache Spark构建实时分析Dashboard
查看>>