Raj*_*Raj 5 url angularjs codeigniter-3 angularjs-routing twitter-bootstrap-3
我正在使用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"
});
});
Run Code Online (Sandbox Code Playgroud)
在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>
Run Code Online (Sandbox Code Playgroud)
我的所有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";
}
Run Code Online (Sandbox Code Playgroud)
对于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);
});
}
}]);
Run Code Online (Sandbox Code Playgroud)
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' }
});
}
Run Code Online (Sandbox Code Playgroud)
如果您的 csrfToken 在 codeigniter 配置中处于活动状态,则需要将其作为隐藏类型字段传递到表单中。此外,您还必须在标题中设置内容类型。
归档时间: |
|
查看次数: |
901 次 |
最近记录: |