gpt4 book ai didi

javascript - ng-repeat 过滤器未应用

转载 作者:行者123 更新时间:2023-11-28 07:42:36 24 4
gpt4 key购买 nike

我有一个简单的代码,可以按时间间隔提取一些数据并打印到表格中。我想过滤表行,但我尝试应用的任何过滤器都会被忽略。我缺少什么?这基本上是 AngularJS docs page 的简单副本.

这里唯一的区别似乎是我使用的是 Controller ,而示例代码没有。

示例 Plunkr .

HTML 模板:

<table>
<thead>
<tr>
<th>Pages</th>
<th>Last action</th>
<th>Total time</th>
</tr>
<tr>
<th><input ng-model="search.count"></th>
<th><input ng-model="search.last"></th>
<th><input ng-model="search.time"></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in adminCtrl.rows | filter:search ">
<td>{{ row.count }}</td>
<td>{{ row.last }}</td>
<td>{{ row.time }}</td>
</tr>
</tbody>
</table>

Controller :

(function(){
var app = angular.module('admin', []);

app.controller('AdminController', ['$interval', '$http', function($interval, $http){
var admin = this;
admin.rows = [];
var timer = undefined;

function updateRows() {
$http.get('test.json').success(function(data) {
admin.rows = data;
});
}

admin.stopTimer = function() {
if (angular.isDefined(timer)) {
$interval.cancel(timer);
timer = undefined;
}
};

admin.startTimer = function(delay) {
if (!angular.isDefined(delay)) {
// Default interval 10 seconds.
delay = 10000;
}

if (!angular.isDefined(timer)) {
timer = $interval(updateRows, delay);
}
};

admin.isTimerRunning = function() {
return angular.isDefined(timer);
}

// Initialize rows.
updateRows();

// Start the interval timer.
admin.startTimer();

}]);

})();

最佳答案

过滤器仅适用于数据是对象的数组。只需将数据转换为数组就可以了。如果您碰巧使用 lo-dash,那么这很容易做到:

function updateRows() {
$http.get('test.json').success(function(data) {
admin.rows = _.toArray(data);
});
}

关于javascript - ng-repeat 过滤器未应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27841584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com