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 № 1Ponieważ 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