簡體   English   中英

角度搜索過濾器不起作用(PHP返回的數據)

[英]Angular search filter not working (data returned by PHP)

我沒有使搜索過濾器正常工作。

項目模板:

<h3>Projekte</h3>
Search: <input ng-model="searchText">
<table class="table">
    <thead>
        <tr>
            <th>ID</th>
            <th>Title</th>
            <th>Long Title</th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="(key, project) in projects | filter:searchText">
            <td>{{key}}</td>
            <td>{{project.title}}</td>
            <td>{{project.longTitle}}</td>
            <td><button class="btn btn-default" ng-click="edit()"><i class="fa fa-pencil"></i></button></td>
        </tr>
    </tbody>
</table>

控制器:

var secProjects = function ($http,$scope, $modal) {

    $http.post('php/data.php').
    success(function(data) {
        $scope.projects = data;
    })

}

PHP:

while($row = mysql_fetch_object($result)){
        $data[$row->ID] = array ('id'=>$row->ID,'title'=>$row->Title,'longTitle'=>$row->TitleLong, 'textDE'=>$row->DescriptionDE,'start'=>$row->DateStart,'end'=>$row->DateEnd);
    }
    echo json_encode($data);

我希望您能為我提供幫助:(我認為原因與我獲取范圍內數據的方式有關。但是我不確定。

編輯:更改PHP解決了問題:

   $data = array();
   while($row = mysql_fetch_object($result)){
      array_push($data,['id'=>$row->ID,'title'=>$row->Title,'longTitle'=>$row->TitleLong]);
   }
   echo json_encode($data);

問題是您的后端將數據作為對象而不是數組返回。
但是filter僅適用於數組(根據docs ):

從數組中選擇項的子集,並將其作為新數組返回。


因此,您有兩個選擇:

1。
在將數據分配給您的范圍之前,請將它們從對象轉換為數組。 例如:

$http.post(...).success(function (data) {
    $scope.projects = [];
    for (var key in data) {
        $scope.projects.push(data[key]);
    }
});

2。
讓您的后端將數據作為JSONified數組而不是對象返回。
PHP將$data “數組”解釋為一個對象的原因是索引不是順序的(從0開始)。 即沒有索引0, 1, 2... ,而是1,2,3... (請參閱此答案以獲取更多信息。)
要解決此問題,您可以更改代碼,如下所示:

$data[] = array (...

另請參見此簡短演示

我已經復制了您的工作,但這里沒有服務電話。 除了您的帖子(應該得到)之外,其他內容完全相同。 而且效果很好。 花一些時間檢查您的工作。 JavaScript錯誤可能會禁用其他功能。

    $scope.projects = [{
    title: 'one',
    longTitle: 'one long title'
}, {
    title: 'two',
    longTitle: 'two long title'
}];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM