当前位置: 首页 > 面试题库 >

AngularJS和Codeigniter-组合和数据传输

龙华翰
2023-03-14
问题内容

我最近开始学习AngularJS,并且正在考虑使用codeigniter作为后端(作为将数据插入,更新和删除MySQL数据库的API)和AngularJS作为前端框架来创建应用程序。所以我的问题是:我将如何实现?我要在两者之间传输数据吗?

我想通过示例了解一些细节,因为我找不到结合了两者的优秀视频教程。(找到了有关laravel和angular的一些教程,Ruby在rails和angular上,但还不是真的)。如果有人知道好的视频教程,甚至是博客博客对此进行了解释,请提供一个链接。

在GitHub上找到了几个组合项目,但是没有任何说明如何完成以及如何做,它们并没有真正的用处。

我对此唯一了解的就是我必须将数据作为json返回,但是我不确定如何做到这一点。

谢谢!


问题答案:

CodeIgniterAngularJS的 结合将帮助您构建新的 HTML5应用程序范围

与JQuery不同,AngularJS是一个前端框架,它依赖于来自后端的数据,来自前端的所有通信都是通过 Controller Methods进行的
,Angular中有 getpost的 操作。

CodeIgniter将充当 API ,它将向Angular控制器输出 json 响应。

我相信json_encode(data)会输出所需的 JSON 字符串,当前端接收该字符串时,Angular 的 数据表示
层会处理//或者如果您想对数据执行任何操作,Angular也可以这样做。

我没有这个组合的任何链接,因为大多数人已经转向 Ruby on Rails*AngularJS 组合,因为担心新版本
CodeIgniter 的停止
*

对于没有令人满意的链接/博客帖子感到遗憾。如果时间允许我进行 概念验证 ,我将非常乐意发布该链接。

希望这可以帮助。

编辑

JSON格式

    [
        {"title": "t1"},
        {"title": "t2"}
        ....
     ]

HTML

 <body ng-app="app">
   <div ng-controller="MsgCtrl">
    <ul>
      <li ng-repeat="m in msg">{{m.title}}</li>
    </ul>
   </div>
 </body>

JS

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

 app.controller("MsgCtrl", function($scope, $http) {
    $http.get('/index.php/ctrlname/methodname').
    success(function(data, status, headers, config) {
     $scope.msg = data;
    }).
    error(function(data, status, headers, config) {
     // log error
    });
 });

更新

使用 CodeIgniter*AngularJS 进行插入,删除,更新 *

CodeIgniter 控制器

class Msg extends CI_Controller {

    public function retrieveall() { .. } // Retrieves all Content from the DB
    public function create(){ .. } // Inserts the given data to DB
    public function retrieve($id){ .. } // Retrieves specific data from the DB
    public function update($id, $title){ .. } // Updates specific data from the DB
    public function delete($id){ .. } // Deletes specific data from the DB

    ...

}

CodeIgniter 路由

$route['m'] = "msg";
$route['m/(:any)'] = "msg/$1";

的HTML

<body ng-app="app">
   <div ng-controller="MsgCtrl">
    <ul>
      <li ng-repeat="m in msg">
           {{m.title}}

           <a href="#" ng-click="delete(m.id)">Delete</a>
           <a href="#" ng-click="edit(m.id)">Edit</a>
      </li>
    </ul>

    <input type="text ng-model="create.title">
    <button type="submit" ng-click="formsubmit"> Submit </button>

     <input type="text ng-model="editc.title">
    <button type="submit" ng-click="editsubmit(editc.id)"> Submit </button>
   </div>
 </body>

JS

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

 app.controller("MsgCtrl", function($scope, $http) {
    $http.get('/index.php/m/retrieveall').
    success(function(data, status, headers, config) {
     $scope.msg = data;
    }).
    error(function(data, status, headers, config) {
     // log error
    });

    $scope.delete = function($id) {
        $http.get('/index.php/m/delete/' + $id).
        success(function(data, status, headers, config)       {
        $scope.result = data;
    }

    $scope.edit = function($id) {
        $http.get('/index.php/m/retrieve/' + $id).
        success(function(data, status, headers, config)       {
        $scope.editc = data;
    }

    $scope.editsubmit = function($id) {
       $http.get('/index.php/m/update/' + $id +'/' + $scope.editc.title).
        success(function(data, status, headers, config)      {
        $scope.result = data;
    }
    }

    $scope.formsubmit = function($id) {
               $http.post('/index.php/m/create', {data: create}).
                success(function(data, status, headers, config)      {
                $scope.result = data;
         }
     }
 });

我相信这会帮助您理解。这只是一个简单的例子



 类似资料:
  • 问题内容: 我正在使用CodeIgniter编写的现有站点上工作,我们正在考虑将AngularJS用于需要大量前端功能的某些页面,但我们不想替换所有CodeIgniter视图(一次(尚未))。 因此,我单击了由angular的路由器控制的链接,该链接由javascript处理,但下一个链接可能是应由CodeIgniter框架处理的“正常”请求。 有两种结合这两种方法的优雅方法吗?我真的不介意一些额

  • 问题内容: 考虑Oracle表。我想用顶薪与获得职工和。还假定没有“ empno”列,并且主键涉及许多列。您可以使用以下方法执行此操作: 这可行,但我必须重复测试deptno = 20和job =’CLERK’,这是我想避免的。有没有更优雅的方式编写此代码,也许使用?顺便说一句,如果这很重要,我正在使用Oracle。 问题答案: 以下内容经过了精心设计,但对于“ top x”查询而言,这是一个很好

  • 问题内容: 我的问题实际上与在这里发现的问题非常相似: AngularJs-取消路线更改事件 简而言之,我正在使用$ routeChangeStart并尝试使用$location更改当前路由。完成后,控制台会显示原始页面仍在加载中,并很快被新页面覆盖。 提供的解决方案是使用$ locationChangeStart而不是$routeChangeStart,这应该可以防止额外的重定向。不幸的是,我在

  • 问题内容: 我花了几天的时间研究和研究用于上传/下载byte的解决方案。我已经接近了,但是还有一个问题似乎在我的AngularJS代码块中。 在陈述问题之前,这里有一些背景信息来设置上下文。 我试图创建一个通用的客户端/服务器接口来上载和下载byte [],它们被用作专有服务器数据库的一部分。 我在客户端上使用TypeScript,AngularJS,JavaScript和Bootstrap CS

  • 问题内容: 我是angular.js的初学者,但是对基础知识有很好的了解。 我要做的是上传文件和一些表单数据作为多部分表单数据。我读到这不是angular的功能,但是3rd party库可以做到这一点。我已经通过git克隆了angular-file-upload,但是仍然无法发布简单的表单和文件。 有人可以提供如何执行此操作的示例,html和js吗? 问题答案: 首先 您无需对结构进行任何特殊更改

  • 问题内容: 我是AngularJS的新手,在这里我很茫然。 现在,我的MVC程序使用Razor来显示.mdf数据库中的所有数据(即 @ Html.DisplayFor(modelItem = > item.LastName) )。但是,我想主要使用Angular。我正在尝试使用ng- repeat显示所有Model数据,但是我不确定如何将那个Model数据传递给Angular控制器然后使用它。我曾