使用下面的代码(控制器和html页面),我看到表格没问题。但过滤器不起作用。当我在过滤器中输入内容时:
有什么想法吗?
谢谢,
angular.module('myApp').controller('customerListController', ['$scope', '$http', '$location', function ($scope, $http, $location) {
getCustomers = function () {
var url = '......';
$http({ method: 'GET', url: url })
.success(function (data, status, headers, config) {
$scope.customers = data.Customers;
})
.error(function (data, status, headers, config) {
});
};
$scope.customers = getCustomers();
}]);
<table st-table="customers" st-safe-src="rowCollection" class="table table-striped">
<thead>
<tr>
<th st-sort="FirstName">FirstName</th>
<th st-sort="LastName">LastName</th>
<th st-sort="Code">Code</th>
<th st-sort="Email">Email</th>
</tr>
<tr>
<th colspan="4"><input st-search="" class="form-control" placeholder="global search ..." type="text" /></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in customers">
<td>{{row.FirstName}}</td>
<td>{{row.LastName}}</td>
<td>{{row.Code}}</td>
<td>{{row.Email}}</td>
</tr>
</tbody>
</table>
更新1: 我添加了下面的代码但现在改变了。
$scope.customers = getCustomers();
$scope.rowCollection = $scope.customers;
答案 0 :(得分:0)
我不知道你是否还在寻找答案。
通过执行此操作$scope.rowCollection = $scope.customers;
,您可以引用$scope.customers
。
如果我是对的,你必须通过这样的方式复制你的客户数据:
var yourCustomersData = getCustomers();
$scope.customers = angular.copy(yourCustomersData); // st-table
$scope.rowCollection = angular.copy(yourCustomersData); // st-safe-src
我认为它会像那样工作。
答案 1 :(得分:0)
你只是混淆了 st-table 和 st-safe-src 是什么, st-table 是您搜索或过滤数据网格时的临时数据,智能表从 st-safe-src 过滤主要数据,然后分配给 st-table 临时数据源
在这里您不想将数据单独分配给 st-table,因为它是一个可选的,最初是智能表查找它并过滤数据然后分配给它。
在您的代码中,我只是更改了行:
在你的 Js 中,我看到了一些奇怪的东西。 您的代码:
$scope.customers = getCustomers();
在这里,您将不可返回的功能分配给您的数据源。因此,您的数据源可能未定义。所以我只是改变了这一行。
getCustomers();
在你的 HTML 中:
<table st-table="tempCollection" st-safe-src="customers" class="table table-striped">
在您的 Js 代码中:
angular.module('myApp').controller('customerListController', ['$scope', '$http', '$location', function ($scope, $http, $location) {
getCustomers = function () {
var url = '......';
$http({ method: 'GET', url: url })
.success(function (data, status, headers, config) {
$scope.customers = data.Customers; // st-safe-src
//no need to assign st-table
})
.error(function (data, status, headers, config) {
});
};
getCustomers();
}]);