2016-08-11 10 views
0

Anjular jsとCodeigniter 3を使用してプロジェクトを開発しています。角度jでルーティングする際に問題が発生しました。私はユーザーの詳細のリストを持つビューページを持っていて、そのリストの中にng-click = "myName()"というタグがあります。私はjsファイルの中でこの関数を宣言しており、この関数はうまく動作します。

<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="{{settings.base_url_controller}}auth/functionOne" 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> 

この関数 "myName()"では、コントローラ(Codeiginterコントローラ)内で関数を取得するために$ http.postを書きました。私はコントローラとしてauth.phpを使用しており、functionOne()は検索する関数です。

var base_url_abs = window.location.origin; 
var base_url = base_url_abs+'/AngularExPack/Angular_Bootstrap_CI_1/'; 
var base_url_controller = base_url_abs+'/AngularExPack/Angular_Bootstrap_CI_1/index.php/'; 

    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_controller+'auth/functionOne/').success(function (response){ 
      $scope.data = response 
      console.log(response); 
      //alert($scope.data); 
     });*/ 


    /**/ $http({ 
      method : 'POST', 
      url  : base_url_controller+'auth/functionOne/', 
      headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
     }) 
     .success(function(data) { 
      $scope.data = response 
      console.log($scope.data); 
      alert($scope.data); 
      }); 

    } 

}]); 

私はこれを実行すると、エラーが発生したとコンソールの内側に、このよう

enter image description here

を示すしかし、私ならば、私はまた、私は、このリンクをクリックしたときに正しい結果を取得していますされますタグ内のhref内部にbase_urlパスを与えます。

<a href="{{settings.base_url_controller}}auth/functionOne" class="btn btn-primary" ng-click="myName()" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a> 

しかし、私が必要なものは、私は、角度JSを使用して$ HTTPを使用してコントローラ機能functionOneを()にアクセスする必要があり、この機能がmyName内にあります。それは可能ですか?

誰でも知っているなら、ng-clickで解決策を見つけてください。私が間違ったコードを書いたら私を訂正してください。

ありがとうございます。

+1

GETの作品を使用する必要があり、POSTはしていません。バックエンドに何か問題があります。 – str

+0

ステータスコード403の応答は、Webサーバーがアクセスを拒否するように構成されているため、構成上の問題です。 "window.location.origin;"文字列で? – DMCISSOKHO

+0

@ str urのコメントありがとう ReferenceError:GETを使用したときにレスポンスが定義されていません。 – Raj

答えて

0

あなたは

  $http({ 
      method : 'GET', 
      url  : base_url_controller+'auth/functionOne/', 
      headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
     }) 
     .success(function(data) { 
      $scope.data = data 
      console.log($scope.data); 
      alert($scope.data); 
      }); 
+0

GETを使用したときに "ReferenceError:response is not defined"が表示されています。 – Raj

+0

私のコード – DMCISSOKHO

+0

のようなデータで置き換えてください。コンソールに表示されるビューのページ全体が表示されますが、必要なのは、そのタグをクリックすると表示ページを読み込むことです。 – Raj

関連する問題