AngularJS Codeigniter base_url路径设置
我正在使用Codeigniter 3和AngularJs创建一个网站.虽然delevolping我在codeigniter中遇到了基本URL的一些问题.我附加了我的目录struture的图像文件.
在我的主页(views / home.php)中,我添加了一个用于加载不同页面的ng-view.在这里,我使用angularjs ngRoute进行路由. 这是我的代码. var myApp = angular.module("myApp",["ui.bootstrap","ui.router","ngRoute"]); myApp.config(function($routeProvider) { $routeProvider .when("/",{ templateUrl : "application/pages/mainpage.php" }) .when("/about",{ templateUrl : "application/pages/about.html" }) .when("/services",{ templateUrl : "application/pages/services.html" }) .otherwise("/",{ templateUrl: "application/pages/mainpage.php" }); }); 在mainpage.php里面,我列出了一些驻留在json文件(datas / data.json)中的配置文件内容(虚拟内容).所有内容都列出了.在这个列表中,我放置了一个按钮,其中ng-click =“myName” 这是代码: <div class="container" ng-controller="ListController"> <div class="row"> <div class="col-lg-12 text-center"> <h1>Starter Template</h1> <p class="lead">Complete with pre-defined file paths that you won't have to change</p> <div class="row"> <div class="col-sm-6 col-md-4 wow zoomIn" data-wow-delay="0.5s" ng-repeat="items in artists"> <div class="thumbnail"> <img ng-src="{{settings.base_url}}/application/assets/images/profile/{{items.shortname}}.jpg" alt="..."> <div class="caption"> <h3>{{items.name}}</h3> <p>{{items.bio}}</p> <p><a href="javascrip:void(0);" class="btn btn-primary" ng-click="myName()" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p> </div> </div> </div> </div> </div> </div> <!-- /.row --> </div> 我的所有js代码都在app.js(assets / js / app.js)中包含了Angular Js.在这个js文件中,我设置了一个与codeigniter config.php文件相同的base_url变量 $config [‘base_url’] =’http://localhost/AngularExPack/Angular_Bootstrap_CI_1/‘; 在app.js里面 var base_url =’http://localhost/AngularExPack/Angular_Bootstrap_CI_1/‘ 当我点击我的按钮与ng-click =“myName”我想得到一个控制器(Codeigniter控制器),并希望在该控制器内执行一个功能.这里我使用auth.php(controllers / auth.php)和函数名作为functionOne(); public function functionOne() { /*$this->load->view('home1');*/ echo "hai"; } 对于iam使用$hhtp.post和var base_url作为路径.但我没有得到那个输出,它没有传递给那个控制器. myApp.controller('ListController',['$scope','$http','settings',function($scope,$http) { $http.get('application/datas/data.json').success(function(data) { $scope.artists = data; }); $scope.myName = function() { alert("hai1"); /**/ $http.post(base_url + 'auth/functionOne').success(function(response) { $scope.data = response console.log($scope.data); alert($scope.data); }); } }]); ng-click =“myName”功能正常.但它没有传递给控制器??auth.php中的函数functionOne.我认为问题可能在于base_url路径.如果有人知道这个PLZ帮助我解决这个问题. 解决方法
好吧,我不知道这会对你有所帮助,但这就是我这样做的方式:
我在服务中有这个功能: saveFunction: function(obj,user,securityToken){ return $http({ method: 'POST',url: 'index.php/controller/saveFUnction',data: $.param({ postID: obj.id,csrfTokenName: securityToken,postName: obj.name,..... userID: user.id }),headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }); } 如果您的csrfToken在codeigniter配置中处于活动状态,则需要在表单中将其作为隐藏类型字段传递.此外,您必须在标题中设置内容类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |