Ich erstelle eine Website mit Codeigniter 3 und AngularJs. Während delevolping habe ich einige Probleme mit der Basis-URL in codeigniter konfrontiert. Ich füge eine Bilddatei meiner Verzeichnisstruktur hinzu.AngularJS Codeigniter base_url Pfadeinstellungen
In meinem main (views/home.php) habe ich eine ng-Ansicht für verschiedene Seiten zu laden. Hier verwende ich angularjs ngRoute für das Routing.
Hier ist mein Code.
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"
});
});
Innerhalb dieses mainpage.php Ich bin Auflistung einige Profilinhalte (Dummy-Inhalte), die (Daten/data.json) innerhalb einer JSON-Datei residiert. Und alle Inhalte wurden aufgelistet. Und innerhalb dieser Auflistung platziert i eine Schaltfläche mit ng Klick = "myName"
Hier ist der Code:
<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>
Alle meine js Code wurden in app.js wriiten (Aktiva/js/app.js) einschließlich Angular Js. In dieser js Datei habe ich eine base_url Variable eingerichtet wie in codeigniter config.php Datei
$ config ['base_url'] = 'http://localhost/AngularExPack/Angular_Bootstrap_CI_1/';
innen app.js
var base_url = 'http://localhost/AngularExPack/Angular_Bootstrap_CI_1/'
Wenn ich mit auf meine Schaltfläche klicken ng-Klick = "myName" Ich möchte einen Controller (Codeigniter Controller) erhalten und ausführen möchten eine Funktion in diesem Controller. Hier benutze ich auth.php (controllers/auth.php) und Funktionsname als functionOne();
public function functionOne()
{
/*$this->load->view('home1');*/
echo "hai";
}
Für diesen iam mit $ hhtp.post und var base_url für Pfad. Aber ich habe diese Ausgabe nicht erhalten und es wird nicht an diesen Controller übergeben.
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 = Funktion "meinName" funktioniert gut. Es wird aber nicht an die Funktion functionOne in diesem Controller auth.php übergeben. Ich denke, das Problem ist wahrscheinlich mit dem Pfad base_url. Wenn jemand weiß, dass diese PLZ mir helfen, dieses Problem zu lösen.
kann es etwas mit $ config zu tun haben ['csrf_protection'] = TRUE; was Sie in der codeigniter Konfigurationsdatei finden – gianni
Danke für Ihren Kommentar. Ich habe versucht, aber nicht funktioniert. – Raj