2013-04-08 8 views
6

Próbuję użyć ng-repeat dla listy., Ale chcę mieć wcześniej istniejące elementy listy, które są renderowane za pomocą Django. Uwaga: Ustawiłem {[{ }]} jako mój AngularJS InterpolateProvider.AngularJS - Jak radzić sobie z powtórzeniem ng z wcześniejszymi elementami

próbki HTML

<ul ng-controller="ListController"> 
    {% for item in existing_list %} 
     <li> 
      <span>{{item.firstName}}</span> 
      <span>{{item.lastName}}</span> 
     </li> 
    {% endfor %} 

    <li ng-repeat="item in items"> 
     <span>{[{item.firstName}]}</span> 
     <span>{[{item.lastName}]}</span> 
    </li> 
</ul> 

Teraz chcę obsłużyć te przedmioty za pomocą ng-controller

app.js

function ListController($scope){ 
    $scope.items = [{firstName: "Bob", lastName: "Smith"}]; 
} 

Moje pytanie brzmi, jak mogę dodać wstępnie istniejące elementy listy wygenerowane przez Django do dołączenia do $scope.items?

+1

Wygląda byłoby bardziej sensowne, aby scalić dane jako JSON i utworzyć wszystkie elementy z powtórzenie ng. Minusem twardego kodowania części listy na serwerze jest utrata możliwości użycia kątowego do listy filtrów. – charlietfl

+0

Zastanawiasz się, czy rozwiązałeś to i jak. Obecnie mam ten sam problem. –

Odpowiedz

2

Sposób, w jaki teraz działam, polega na wprowadzeniu danych do zakresu przez ngInit. Więc masz rodzaj:

<ul ng-controller="ListController" ng-init='items = {% existing_list.toJSON() %}'> 

(przepraszam, nie wiem jak do serializacji obiektu do JSON)

+0

Dzięki za odpowiedź. Myślałem o tym, ale naprawdę chcę uniknąć tego dokładnego sposobu drukowania JSON do wykorzystania przez js – AlexCheuk

Powiązane problemy