Как показать данные после запроса из Bottle Framework с помощью angularjs ng-repeat? - PullRequest
0 голосов
/ 05 июля 2018

Мои данные из Bottle Framework после запроса: {{rows}}

[(1, «Crystal», «Daklak», 1995, «IT»), (2, «Trace», «Hue», 1995, «IT»), (3, «Tina», «Ha Tinh» ', 1995,' IT '), (4,' Na ',' Da Nang ', 1995,' IT ')]

Когда я использую ng-repeat, чтобы показать их в виде таблицы:

     {% raw %}
        <tr ng-repeat="row in data" ng-init="data=rows">
            <td>
                {{row[0]}}
            </td>
            <td>
                {{row[1]}}
            </td>
            <td>
                {{row[2]}}
            </td>
            <td>
                {{row[3]}}
            </td>
            <td>
                {{row[4]}}
            </td>
        </tr>
    {% endraw %}

И я получаю ошибку, как это:

NameError: имя 'row' не определено

Я знаю, что эта ошибка произошла, когда Bottle прочитал {{expression}} в шаблоне, но я не знаю, как ее исправить.

1 Ответ

0 голосов
/ 05 июля 2018

В контроллере, который управляет этим шаблоном / частичным, вы должны иметь $scope.data, содержащий результаты.

angular.module('app', [])
   .controller('ctrlname', ['$scope', 'myservice',  function($scope,myservice){

    $scope.data = myservice.getData();

   }]

   .service('myservice', ['$http', function($http){

        var self = this;

        //query your endpoint.
        self.getData = function(){
            return $http.get('url').then(function(response){
                return response.data;
            });
        }

        return {
            getData: function(){
                 return self.getData();
            }
        }

   }]

В вашем шаблоне. Всегда лучше, если вы используете ссылки на объекты внутри вашего ng-repeat вместо индексов массива.

<tr ng-repeat="row in data">
    <td>
        {{row[0]}}
    </td>
    <td>
        {{row[1]}}
    </td>
    <td>
        {{row[2]}}
    </td>
    <td>
        {{row[3]}}
    </td>
    <td>
        {{row[4]}}
    </td>
</tr>
...