ng-table - 无法填充选择下拉列表

时间:2015-04-16 21:56:17

标签: javascript angularjs ngtable

为什么这不起作用?我正在使用"自定义下拉过滤器"来自ng-table网站上的example number 11。它们展示了如何使用静态数据获取下拉列表,而我需要它来处理API调用。

值得注意的是:在示例中,他们使用的是一个函数(必须是$ q的承诺):

filter-data="names($column)"

ng-table v0.4.3开始,您现在可以通过指向$ scope变量来返回静态数据:

filter-data="someScopeVariable"

问题:

如果我以[{"id":1111,"title":1111}, ...]的形式将其打印到视图中,我可以看到数据,但不会在ng-table下拉列表中显示。

在我的控制器中:

$scope.initNgTableData = $q.all([MyDataService.getMyData().$promise])
           .then( function(result) {
            var arr = [],
            names = [];
            data = result[0];
            angular.forEach(data.items, function(item){
                if (inArray(result[0], arr) === -1) {
                    arr.push(item.vlan);
                    names.push({
                        'id': item.vlan,
                        'title': item.vlan
                    });
                }
            });
            $scope.ngtableMyData = names;
            return $scope.ngtableMyData;

           });

我已经尝试了两种获取数据的方法:

#1 scope.data变量 $ scope.ngtableMyData ,它解析为数组:

在我看来,我尝试过获取简单的数据:

<td class="col-md-1" data-title="'FOO'" filter="{ 'foo': 'select' }" filter-data="$scope.ngtableMyData" sortable="'foo'">
            ...
        </td>

#2我也试过尝试使用函数来获得已解决的承诺 $ scope.initNgTableData()

<td class="col-md-1" data-title="'FOO'" filter="{ 'foo': 'select' }" filter-data="$scope.initNgTableData()" sortable="'foo'">
        ...        </td>

我觉得这个问题与API的异步性有关。

注意: 你不能只指向任何JSON数组。返回的数据必须是带有&#34; id&#34;和&#34;标题&#34;的数组。请参阅上面链接的示例(示例11),了解它们如何塑造返回数据。

您可以尝试使用API​​调用http://plnkr.co/edit/wKgf04修改此Plunker (请注意,我使用的是$ resource而不是$ http)。

0 个答案:

没有答案