2015-10-16 47 views
0

我是IONIC,angularJS和Django的新手。我试图在Django举办一个IONIC项目。 Django和angularJS都是很好的框架,但是当它们聚在一起时,它让我感到困惑。Django和AngularJS,关于路由器和Django变量分配给控制器

Q1。如何结合Django URLS和angularJS路由器?这两种机制全部用于URL路由器,我应该使用angularJS路由器吗?

例如:

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) 

呀,我得角路由器的车程,每一个URL由Django的路由。 我认为Angular路由器应该能够使用Django的URL。

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

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

    }); 

是否有任何人谁可以提供一个样本,可以告诉我怎么Django的URL和angularJS路由器一起工作?

Q2,如何将Django变量赋值给AngularJS?

例如,我有一个“测试”页面。 当Web浏览器请求此页面时,视图查询数据库中的case_list,然后在呈现Django模板之后返回该页面。 案件状态可以在一些行动后改变,所以它应该是一个角度变量。 (使用逐字来防止Django呈现的{{case.state}}) 问题来了。如何将Django变量case_list分配给angularJS控制器,以便angularJS可以在前端渲染{{case.state}}?

以下线程提供了一种利用全局变量的方法。 我还没有尝试过,但我认为这不是一个好主意。

Assign Django variable value to 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> 

回答

0

既然你做一个离子的项目,最好对前端使用AngularJS让Django的处理后端。使用AnguarJS路线来呈现您的视图并使用Django路径在您的服务器上创建后端API,以便与您的数据库进行通信并输出JSON。然后,您可以使用AngularJS的$ http与您的API进行通信。

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

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

+0

我需要为移动网络浏览器,而不是应用网站。 – Leon