【发布时间】:2016-08-11 08:15:50
【问题描述】:
我正在尝试将数据从 django views.py 文件发送到 angularjs controller.js 文件,但无法发送。 问题是我无法将数据从视图文件发送到控制器。当我运行我的代码时,值 {%steps%} 不会更改为我在视图文件中分配的值。 我不想使用 Django 休息框架来做到这一点。 有没有其他方法可以实现这一目标?如果是的话,请帮帮我。
views.py:
from django.shortcuts import render
from django.conf import settings
from user_data.models import GetData
import json
def home(req):
return render(req, 'index.html')
def userData(req):
if req.method == 'GET':
user_data = GetData().getAllData()
context_dict = {'user_data1' : json.dumps(user_data[0]),
'user_data2' : json.dumps(user_data[1]),
'user_steps' : json.dumps(2000)}
return render(req, 'index.html', context_dict)
controller.js:
'use strict';
MetronicApp.controller('DashboardController', function($rootScope, $scope, $http, $timeout) {
$scope.$on('$viewContentLoaded', function() {
// initialize core components
Metronic.initAjax();
});
$scope.steps = {{user_steps|safe}};
});
html 文件:-
<div ng-controller="DashboardController" class="margin-top-10">
<div class="row ">
<div class="col-md-12 col-sm-12">
<div class="portlet light ">
<div class="portlet-title">
<div class="caption">
<i class="icon-cursor font-purple-intense hide"></i>
<span class="caption-subject font-purple-intense bold uppercase">Tracker Report</span>
</div>
<div class="actions">
<a href="javascript:;" class="btn btn-sm btn-circle btn-default easy-pie-chart-reload">
<i class="fa fa-repeat"></i> Reload </a>
</div>
</div>
<div class="portlet-body">
<div class="row">
<div class="col-md-3">
<div class="easy-pie-chart">
<div class="number transactions" data-percent="55">
<span>{$ steps $}</span>
</div>
<!-- <a class="title" href="#"> -->
Steps <!-- <i class="icon-arrow-right"></i> -->
</a>
</div>
</div>
<div class="margin-bottom-10 visible-sm">
</div>
<div class="col-md-3">
<div class="easy-pie-chart">
<div class="number visits" data-percent="85">
<span>
+85 </span>
%
</div>
<!-- <a class="title" href="#"> -->
Sleep<!-- <i class="icon-arrow-right"></i> -->
</a>
</div>
</div>
<div class="margin-bottom-10 visible-sm">
</div>
<div class="col-md-3">
<div class="easy-pie-chart">
<div class="number bounce" data-percent="46">
<span>
+46 </span>
%
</div>
<!-- <a class="title" href="#"> -->
Calories <!-- <i class="icon-arrow-right"></i> -->
</a>
</div>
</div>
<div class="margin-bottom-10 visible-sm">
</div>
<div class="col-md-3">
<div class="easy-pie-chart">
<div class="number bounce" data-percent="32">
<span>
+32 </span>
%
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
【问题讨论】:
-
您没有向我们提供足够的信息来帮助您。您发布的代码有什么问题?发生什么了?你想要发生什么?你看到了什么错误?
-
@DanielRoseman 问题是我无法将数据从视图文件发送到控制器。当我运行我的代码时,值 {%steps%} 不会更改为我在视图文件中分配的值。
-
您尝试在 js 文件中使用 django 模板语法,但 django 不呈现 javascript 文件
-
@Sayse 那么我到底能做些什么来将值从 django 后端传递到 angularjs 前端?
-
看,您要么在 Django 中填充服务器端的静态页面(使用视图呈现模板),要么使用 API 动态获取数据(从客户端,在 AngularJS 级别) . API 可以是 Django Rest Framework,也可以是您自己开发的东西,或者是两者的组合。但数据必须来自某个地方!