Angular JS 搜索过滤器未使用 Firebase 过滤数据
Angular JS search filter is not filtering the data by using Firebase
我遇到的问题是搜索过滤器不过滤 table。关于问题可能是什么的任何建议或帮助?我正在制作的应用程序很简单,用户应输入两个文本字符串并将其保存,以便数据可以存储在 firebase 数据库中。然后通过搜索筛选能力。但是,搜索不起作用。
Index.html
<table class="table table-bordered">
<thead>
<th>Plate Number</th>
<th>Car Brand</th>
</thead>
<tbody>
<tr ng-repeat="customer in customers | filter:search">
<td>{{customer.CustomerPlateNumber}}</td>
<td>{{customer.CustomerCarBrand}}</td>
</tr>
</tbody>
</table>
script.js(使用 Firebase)
angular.module('myApp', []);
angular.module('myApp').controller('customerCtrl', function($scope) {
$scope.CustomerPlateNumber = "";
$scope.CustomerCarBrand = "";
$scope.customers = {};
$scope.myData = new Firebase("https://sizzling-torch-2102.firebaseio.com/CustomerInformation");
// PS, husk at CustomerPlatenumber: må være lik navnet på ng-model.
$scope.saveCustomerData = function() {
$scope.myData.push({CustomerPlateNumber: $scope.CustomerPlateNumber, CustomerCarBrand: $scope.CustomerCarBrand});
// Empty input after storing data
$scope.CustomerPlateNumber = "";
$scope.CustomerCarBrand = "";
};
// Two parameters, needs to know what its going to be fired upon, and a function that tells what to do when it is fired.
$scope.myData.on('value', function(snapshot) {
$scope.customers = snapshot.val();
//not recommended, look at "refresh bindings angular"
$scope.$apply();
});
});
问题是$scope.customers不是一个数组[]而是一个复杂的JavaScript对象{}。
如果您将其更改为:
$scope.customers=[];
并将 Firebase returning 的复杂散列 table 转换为一个数组,它有效(为了解释,我首先检查 Firebase 是否有方法 return 一个数组而不是使用这个特殊的解释代码):
$scope.myData.on('value', function(snapshot) {
var values = snapshot.val();
for(var myVal in values)
{
var item = values[myVal];
$scope.customers.push(item);
}
});
我遇到的问题是搜索过滤器不过滤 table。关于问题可能是什么的任何建议或帮助?我正在制作的应用程序很简单,用户应输入两个文本字符串并将其保存,以便数据可以存储在 firebase 数据库中。然后通过搜索筛选能力。但是,搜索不起作用。
Index.html
<table class="table table-bordered">
<thead>
<th>Plate Number</th>
<th>Car Brand</th>
</thead>
<tbody>
<tr ng-repeat="customer in customers | filter:search">
<td>{{customer.CustomerPlateNumber}}</td>
<td>{{customer.CustomerCarBrand}}</td>
</tr>
</tbody>
</table>
script.js(使用 Firebase)
angular.module('myApp', []);
angular.module('myApp').controller('customerCtrl', function($scope) {
$scope.CustomerPlateNumber = "";
$scope.CustomerCarBrand = "";
$scope.customers = {};
$scope.myData = new Firebase("https://sizzling-torch-2102.firebaseio.com/CustomerInformation");
// PS, husk at CustomerPlatenumber: må være lik navnet på ng-model.
$scope.saveCustomerData = function() {
$scope.myData.push({CustomerPlateNumber: $scope.CustomerPlateNumber, CustomerCarBrand: $scope.CustomerCarBrand});
// Empty input after storing data
$scope.CustomerPlateNumber = "";
$scope.CustomerCarBrand = "";
};
// Two parameters, needs to know what its going to be fired upon, and a function that tells what to do when it is fired.
$scope.myData.on('value', function(snapshot) {
$scope.customers = snapshot.val();
//not recommended, look at "refresh bindings angular"
$scope.$apply();
});
});
问题是$scope.customers不是一个数组[]而是一个复杂的JavaScript对象{}。
如果您将其更改为:
$scope.customers=[];
并将 Firebase returning 的复杂散列 table 转换为一个数组,它有效(为了解释,我首先检查 Firebase 是否有方法 return 一个数组而不是使用这个特殊的解释代码):
$scope.myData.on('value', function(snapshot) {
var values = snapshot.val();
for(var myVal in values)
{
var item = values[myVal];
$scope.customers.push(item);
}
});