我是 angular.js 的新手并且继承了代码。有一个使用 ng-repeat 显示的数据集 (customerType)。只有当 customerType.type 等于“new”时,我才想显示 3 个表行。这 3 行在下面各自的标签中都有“ng-hide=”。我如何在 angular.js 中执行此操作?我看到的所有指令似乎都适用于整个屏幕显示,所以我不确定如何仅为部分显示更改范围变量。这是html:
<div ng-repeat="customerType in customerTypes" class="span6">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th colspan="3">
<div class="span11 centered-text">
{{customerType.title}}
</div>
<div class="span1">
<a href="javascript:void(0);" ng-click="pullDetail(customerType.type, customerType.clients)" title="Details"><i class="icon-list-alt"></i></a>
</div>
</th>
</tr>
<tr>
<th></th>
<th>
<div class="centered-text">
Month Selected
</div>
</th>
<th>
<div class="centered-text">
YTD
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>Revenue</td>
<td>{{customerType.month.revenue}}</td>
<td>{{customerType.ytd.revenue}}</td>
</tr>
<tr>
<td>Gross Profit</td>
<td>{{customerType.month.gross}}</td>
<td>{{customerType.ytd.gross}}</td>
</tr>
<tr>
<td># of Customers</td>
<td>{{customerType.month.customers}}</td>
<td>{{customerType.ytd.customers}}</td>
</tr>
<tr>
<td>Avg GP per Customer</td>
<td>{{customerType.month.avg_gp}}</td>
<td>{{customerType.ytd.avg_gp}}</td>
</tr>
<tr>
<td># of Jobs</td>
<td>{{customerType.month.jobs}}</td>
<td>{{customerType.ytd.jobs}}</td>
</tr>
<tr ng-hide=>
<td>First Time Client - Revenue</td>
<td>{{customerType.month.ftc_revenue}}</td>
<td>N/A</td>
</tr>
<tr ng-hide=>
<td>First Time Client - Gross Profit</td>
<td>{{customerType.month.ftc_gross}}</td>
<td>N/A</td>
</tr>
<tr ng-hide=>
<td>First Time Client - # of Customers</td>
<td>{{customerType.month.ftc_customers}}</td>
<td>-----</td>
</tr>
<tr ng-hide=>
<td>First Time Client - # of Jobs</td>
<td>{{customerType.month.ftc_jobs}}</td>
<td>-----</td>
</tr>
<tr>
<td>% on Contract</td>
<td>{{customerType.month.contract}}</td>
<td>{{customerType.ytd.contract}}</td>
</tr>
</tbody>
</table>
</div>
以下是当前的指令:
var ReportController = function($scope, $http){
$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$scope.filter = true;
$scope.report = false;
$scope.detail = false;
$scope.customerTypes = [];
$scope.detail_report = [];
$scope.companies = companies;
$scope.nsperiods = nsperiods;
$scope.users = users;
$scope.pullReport = function(sync){
if(sync){
var xsr = {request: 'report', company_no: $scope.company, nsperiod: $scope.nsperiod, users_no: $scope.user};
$('form button').button('loading');
$http({
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: xsr
}).success(function(response){
$scope.filter = false;
$scope.report = true;
$scope.detail = false;
$('form button').button('reset');
$scope.customerTypes = response;
}).error(function(error){
$('form button').button('reset');
return;
});
}else{
$scope.filter = false;
$scope.report = true;
$scope.detail = false;
}
}
$scope.backToFilters = function(){
$scope.filter = true;
$scope.report = false;
$scope.detail = false;
}
$scope.pullDetail = function(type, clients){
var xsr = {
request: 'detail',
type: type,
company_no: $scope.company,
nsperiod: $scope.nsperiod,
users_no: $scope.user
};
$http({
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: xsr
}).success(function(response){
$scope.filter = false;
$scope.report = false;
$scope.detail = true;
$scope.detail_report = response;
}).error(function(error){
return;
});
}
};
任何帮助将不胜感激。我正试图解决这个问题,但有些东西并没有完全联系起来。