2017-03-13 1 views
0

正しく動作していないようですが、shop.phpはブラウザで正常に読み込まれますが、イオン上ではループ内にまったく表示されません。Ionic ng-repeat not working

私は何をしようとしているのは、ng-repeatが付いているが、ブラウザコンソールのソースリストビューで全く動作していないような、私はそれが読み込まれて表示し、データを思い付くが、表示されませんすることができ

コントローラー:

.controller('shopCtrl', function($scope,$http,$ionicPopup,$state,$ionicHistory,$stateParams) { 
 

 
    $scope.data = {}; 
 
    $scope.session_id= sessionStorage.getItem('session_id'); 
 
    var sid = $scope.session_id; 
 
    if($scope.session_id == null){ 
 
     $state.go('login'); 
 
    } 
 
    else { 
 

 

 

 
     var sload = 'https://app.one3community.com/shop.php'; 
 
     $http.post(sload).then(function (res){ 
 
      console.log(response.data); 
 
      $scope.merch = response.data; 
 
     }); 
 
    
 
    } 
 
})

HTML:

<ion-view title="rides" id="page16"> 
 
<div class="bar bar-header bar-positive"> 
 
    <h1 class="title">SHOP</h1> 
 
</div> 
 
<ion-content padding="true" class="has-header" style="margin-top: 44px;"> 
 
<div ng-repeat="shop in merch"> 
 
      <div class="col-demo"> 
 
\t \t \t <div class="list card"> 
 

 
\t \t   <div class="item item-avatar"> 
 
\t \t   <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/dc/Nine_Inch_Nails_logo.svg/220px-Nine_Inch_Nails_logo.svg.png"> 
 
\t \t   <h2>{{shop.image}}</h2> 
 
\t \t   <p>Nine Inch Nails</p> 
 
\t \t   </div> 
 

 
\t \t   <div class="item item-image"> 
 
\t \t   <img src="http://ecx.images-amazon.com/images/I/41D5vU4I1NL.jpg"> 
 
\t \t   </div> 
 

 
\t \t   <a class="item item-icon-left assertive" href="#"> 
 
\t \t   <i class="ion-android-cart"></i> 
 
\t \t   £10.00 
 
\t \t   </a> 
 

 
\t \t  </div> 
 
\t \t </div> 
 

 
</div> 
 
</ion-content> 
 
</ion-view>

PHPの:実は私はNG-repeatが働いていると思う

<?php 
 
    
 
header('Content-Type: application/json; charset=UTF-8'); 
 

 
//Allow all domain names to be accessed 
 
header('Access-Control-Allow-Origin:*'); 
 

 
$content_type_args = explode(';', $_SERVER['CONTENT_TYPE']); 
 
if ($content_type_args[0] == 'application/json') { 
 
    $_REQUEST = json_decode(file_get_contents('php://input'), true); 
 
}; 
 
    
 
//used to establish connection 
 
$conn = new mysqli("localhost", "", "", ""); 
 
    
 
// query to retrieve the products 
 
$query="SELECT * FROM oneThree_merchandises"; 
 
    
 
//generates the result 
 
$result = $conn->query($query); 
 
$outp = ""; 
 
while($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
 
    if ($outp != "") {$outp .= ",";} 
 
    $outp .= '{"image":"' . $rs["image"] . '",'; 
 
    $outp .= '"image_format":"' . $rs["image_format"]  . '",'; 
 

 
\t $outp .= '"id":"'. $rs["id"]  . '"}'; 
 
} 
 
$outp ='{"test":['.$outp.']}'; 
 
$conn->close(); 
 
    
 
//outputs the content 
 
echo($outp); 
 
?>

+0

:もっと私の他の回答を参照してください

。私の別の答えを見てください:http://stackoverflow.com/a/42726272/1960558 –

答えて

0

2つの問題があります。

  1. あなたは$http.postを使用しているが、それはそれはconsole.log(res.data); $scope.merch = res.data;

する必要があり、JavaScriptは常に同期している$http.get

  • console.log(response.data); $scope.merch = response.data;でなければなりません。ここで何が起こっているのですか?$scope.merch; $http.get('/..') ...が完了する前に実行されています。つまり、$scope.merchは未定義です。この問題を解決するには、Serviceを使用することをお勧めします。それはイオン性の問題ではないのですhttps://stackoverflow.com/a/42726272/1960558

  • +0

    ありがとうございます!私はそれを見ていないとは信じられない –

    0

    、問題がマーチ変数であることに等しいですので、それはおそらくヌルですresponse.data、応答はdefiではありませんned。代わりにres.dataにする必要があります。