Javascript AngularJS表不显示数据
HTML: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
搜索结果
加载设备。。。。
显示页面{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>