Javascript AngularJS表不显示数据

Javascript AngularJS表不显示数据,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,HTML: 搜索结果 加载设备。。。。 显示页面{currentPage}/{{totalPages} 名称 类型 看法 {{cols.name} {{cols.type}} {{cols.view} JS: angular.module(“app”).controller('SearchCtrl',function($scope,$cookies,$location){ var jwt_token=$cookies.get(“token”); $scope.default=“”; $sc

HTML:


搜索结果
加载设备。。。。
显示页面{currentPage}/{{totalPages}
名称
类型
看法
{{cols.name}
{{cols.type}}
{{cols.view}

JS:

angular.module(“app”).controller('SearchCtrl',function($scope,$cookies,$location){
var jwt_token=$cookies.get(“token”);
$scope.default=“”;
$scope.searchItem=函数($event){
如果($event.which==13){
$scope.$watch('$scope.searchTerm',函数(){
如果($scope.searchTerm==null | |$scope.searchTerm==“”){
bootbox.alert(“搜索不能为空!!”;
}否则{
$location.path(“/search”);
变量设置={
“异步”:true,
“跨域”:正确,
“url”:trackFleetServiceUrl+“搜索/”+$cookies.get(“帐户id”),
“方法”:“发布”,
“标题”:{
“x-access-token”:jwt_token,
“内容类型”:“应用程序/x-www-form-urlencoded”,
“缓存控制”:“无缓存”
},
“数据”:{
“txt”:$scope.searchTerm
}
}
$.ajax(设置).done(函数(resp){
$(“#加载”).css('display','none');
if(resp.status_code==100 | | resp.status_code==101){
$cookies.put(“状态代码”,分别为状态代码);
$scope.$apply(函数(){
$location.path(“/signin”);
});
通知(“错误”、“右上角”、“会话已过期”、“请重新登录”);
}否则如果(响应状态代码!=200){
通知(“错误”、“右上角”、“车队”,各自状态信息);
}否则{
if(resp.response.length==0){
bootbox.alert(“未找到结果!!”);
}否则{
$scope.currentPage=1;
$scope.tableData=[];
$scope.sortType='name';//设置默认排序类型
$scope.sortReverse=false;//设置默认排序顺序
$scope.searchTable='';//设置默认搜索/筛选条件
对于(变量i=0;i
}))

标题(HTML,从中获取搜索词):

  • 现在,当我搜索任何术语时,我都会从我的服务中得到响应。在控制台上记录响应时,我得到了正确的结果,但表上没有出现相同的结果

    我不知道我错过了什么。请帮忙


    p.S.在tr中的tbody内部,我使用dir paginate来添加分页,而不是ng repeat。但是,在其他页面/表格上也是如此。

    根据您提供的信息,很难判断问题出在哪里。而不是将数据推入$scope.tableData并同时应用。如何才能首先推送tableData中的所有数据,并通过控制台记录它,最后调用$scope.apply()?我仍然能够通过控制台记录结果。您是说,在完成一次性$scope.apply()之后,记录的数据在表上没有正确显示吗?如果是这样,能否在元素之前添加$scope.tableData?我只想检查$apply()是否真的更新了scope变量。我遇到了类似的问题。你用过这个吗?很难
    <li class="search-box visible-md visible-lg" ng-controller="SearchCtrl">
                <div class="input-group">
                    <span class="input-group-addon" style="font-size: 20px;"><i class="fa fa-search"></i></span>
                    <input type="text" class="form-control" placeholder="Search fleet, asset" style="color: #fff;" ng-model="searchTerm" ng-keypress="searchItem($event)">
                </div>
            </li>
    
    angular.module("app").controller('SearchCtrl', function($scope, $cookies, $location) {
    var jwt_token = $cookies.get("token");
    $scope.default = "";
    $scope.searchItem = function($event) {
        if ($event.which == 13) {
            $scope.$watch('$scope.searchTerm', function() {
                if ($scope.searchTerm == null || $scope.searchTerm == "") {
                    bootbox.alert("Search cannot be empty!!");
                } else {
                    $location.path("/search");
                    var settings = {
                        "async": true,
                        "crossDomain": true,
                        "url": trackFleetServiceUrl + "search/" + $cookies.get("account_id"),
                        "method": "POST",
                        "headers": {
                            "x-access-token": jwt_token,
                            "content-type": "application/x-www-form-urlencoded",
                            "cache-control": "no-cache"
                        },
                        "data": {
                            "txt": $scope.searchTerm
                        }
                    }
                    $.ajax(settings).done(function(resp) {
                        $("#loading").css('display', 'none');
                        if (resp.status_code == 100 || resp.status_code == 101) {
                            $cookies.put("status_code", resp.status_code);
                            $scope.$apply(function() {
                                $location.path("/signin");
                            });
                            notify("error", "top right", "Session Expired", "Please login again.");
                        } else if (resp.status_code != 200) {
                            notify("error", "top right", "Fleet", resp.status_message);
                        } else {
                            if (resp.response.length == 0) {
                                bootbox.alert("No result found!!");
                            } else {
                                $scope.currentPage = 1;
                                $scope.tableData = [];
                                $scope.sortType = 'name'; // set the default sort type
                                $scope.sortReverse = false; // set the default sort order
                                $scope.searchTable = ''; // set the default search/filter term
                                for (var i = 0; i < resp.response.length; i++) {
                                    if (resp.response[i].fleet_id != null && resp.response[i].fleet_id != "null") {
                                        $scope.$apply(function() {
                                            $scope.tableData.push({
                                                name: resp.response[i].fleet_name,
                                                type: "Fleet",
                                                view: resp.response[i].fleet_id
                                            });
                                        });
                                    } else if (resp.response[i].asset_id != null && resp.response[i].asset_id != "null") {
                                        $scope.$apply(function() {
                                            $scope.tableData.push({
                                                name: resp.response[i].asset_name,
                                                type: "Asset",
                                                view: resp.response[i].asset_id
                                            });
                                        });
                                    }
                                }
                                console.log($scope.tableData);
                            }
                        }
                    });
                    $scope.searchTerm = $scope.default;
                }
            })
        }
    }
    
    <li class="search-box visible-md visible-lg" ng-controller="SearchCtrl">
                <div class="input-group">
                    <span class="input-group-addon" style="font-size: 20px;"><i class="fa fa-search"></i></span>
                    <input type="text" class="form-control" placeholder="Search fleet, asset" style="color: #fff;" ng-model="searchTerm" ng-keypress="searchItem($event)">
                </div>
            </li>