/ / Django i AngularJS, o routerze i zmiennej Django przypisanej do kontrolera - angularjs, django

Django i AngularJS, o routerze i zmiennej Django przypisanej do kontrolera - angularjs, django

Jestem nowicjuszem w IONIC, angularJS i Django. Próbowałem zorganizować projekt IONIC w Django. Django i angularJS są świetnym frameworkiem, ale kiedy się spotykają, wprawia mnie to w zakłopotanie.

Pytanie 1 Jak połączyć adresy URL Django i router angularJS? Te dwa mechanizmy są używane do routera URL, czy powinienem skorzystać z routera angularJS?

na przykład:

URLS.py:

urlpatterns = [
url("^login$", views.login),
url("^jobDetail$", views.jobDetail),
]

view.py

def jobDetail(request):
context = RequestContext(request)
return render_to_response("we/JobDetail.html", {}, context)

def login(request):
context = RequestContext(request)
return render_to_response("we/login.html", {}, context)

Tak, dostałem router Angular, a każdy adres URL jest kierowany przez Django. Myślę, że router Angular powinien być w stanie współpracować z adresami URL Django.

   angular.module("test", [])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider

.state("myJobs", {
url: "/myJobs",
templateUrl: "myJobs.html",
controller: "myJobsCtl"
})

});

Czy jest ktoś, kto może dostarczyć próbkę, która może mi pokazać, jak działają adresy URL Django i router angularJS?

Q2, jak przypisać zmienną Django do AngularJS?

Na przykład mam stronę „testową”. Gdy przeglądarka zażąda tej strony, widok odpytuj listę spraw z bazy danych, a następnie zwróć stronę po renderowaniu szablonu Django. stan sprawy może ulec zmianie po niektórych akcjach, więc powinna być zmienną kątową. (posługiwać się dosłownie aby zapobiec {{case.state}} renderowanym przez Django) Oto pytanie. Jak mogę przypisać zmienną Django lista_przypadków do kontrolera angularJS, aby angularJS mógł renderować {{case.state}} z przodu?

Poniższy wątek zawiera metodę wykorzystującą zmienną globalną. Nie próbowałem tego, ale myślę, że to nie jest dobry pomysł.

Przypisz wartość zmiennej Django do AngularJS

view.py

def test(request):
context = RequestContext(request)
server_data = {
"case_list": InstallFlow.get_list_by_user(request.user)
}
return test_render_to_response(request, "wechat/myJobs.html", {}, server_data)

test.html:

  <div ng-controller="myJobsCtrl">
{% for case in case_list %}
<label class="item item-input">
<span class="input-label">status</span>
<span>{{case.name}}</span>

<span class="input-label">status</span>
{% verbatim %}
<span>{{case.state}}</span>
{% endverbatim %}

</label>
{% endfor %}
</div>

Odpowiedzi:

0 dla odpowiedzi № 1

Ponieważ wykonujesz projekt joński, najlepiejużyj AngularJS na interfejsie i pozwól Django obsłużyć backend. Użyj AnguarJS Routes, aby wyświetlić swoje widoki i użyj Django Routes, aby utworzyć backend API na serwerze, który komunikuje się z bazą danych i wysyła JSON. Następnie możesz użyć $ http AngularJS do komunikacji z interfejsem API.

http://www.django-rest-framework.org/

https://docs.angularjs.org/api/ng/service/$http