gpt4 book ai didi

AngularJS Codeigniter base_url 路径设置

转载 作者:行者123 更新时间:2023-12-03 17:39:57 34 4
gpt4 key购买 nike

我正在使用 Codeigniter 3 和 AngularJs 创建一个网站。在 delevolping 时,我在 codeigniter 中遇到了一些基本 url 问题。我附上了我的目录结构的图像文件。

enter image description here

在我的主页(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"单击我的按钮时,我想获得一个 Controller (Codeigniter Controller )并希望在该 Controller 内执行一个功能。这里我使用 auth.php(controllers/auth.php) 和函数名作为 functionOne();
    public function functionOne()
{
/*$this->load->view('home1');*/
echo "hai";
}

为此,我使用 $hhtp.post 和 var base_url 作为路径。但我没有得到那个输出,它没有传递给那个 Controller 。
       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"功能工作正常。 但它没有传递给该 Controller auth.php 中的函数 functionOne。 我认为问题可能出在 base_url 路径上。如果有人知道这个请帮我解决这个问题。

最佳答案

好吧,我不知道这对你有帮助,但这就是我的做法:

我在服务中有这个功能:

 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 配置中处于事件状态,则需要在表单中将其作为隐藏类型字段传递。此外,您必须在标题中设置内容类型。

关于AngularJS Codeigniter base_url 路径设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38788396/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com