Hi, I am new to web2py and I would like to embed a running (tested with flask)
javascript based on d3.js in a web2py view.
{{=SCRIPT(_type="text/javascript", _src=URL(c="static", f="js/<the script's name>"))}}
response.files.append(URL(...))
--
{{response.files.append(URL(r=request,c='static',f='/js/d3.js'))}}
{{extend 'layout.html'}}
if request.controller in ("d3", "plot"):
response.files.append(...)
if not request.function in ["about", "index", "contact"]:
response.files.append(...)
<section id="main" class="main row"> <div class="span12">
{{response.files.append(URL(r=request,c='static',f='/js/d3.js'))}}{{extend 'layout.html'}}
<div id="mychart"> </div><script type="text/javascript">d3.select('#mychart').append('svg').append('circle').style("stroke", "gray").style("fill", "red").attr("r", 40).attr("cx", 50).attr("cy", 50);</script>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups "web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to web2py+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
<script src="js/angularjs-nvd3-directives.js"></script>
<script src="js/d3/d3.js"></script>
<script src="js/nvd3/nv.d3.js"></script>
<link rel="stylesheet" href="css/nvcd3/nv.d3.css"/>
<div ng-controller="ExampleCtrl">
<nvd3-line-chart
data="exampleData"
id="exampleId"
xAxisTickFormat="xAxisTickFormatFunction()"
yAxisTickFormat="yAxisTickFormatFunction()"
width="550"
height="350"
showXAxis="true"
showYAxis="true">
<svg></svg>
</nvd3-line-chart>
</div>
In the Angular App, include nvd3ChartDirectives as a dependency.
var app = angular.module("nvd3TestApp", ['nvd3ChartDirectives']);
Create an Angular.js Controller, and assign json data to a scope variable.
and what do i have to write in my Controller file?
Thanks for any help :)
<script src="js/angularjs-nvd3-directives.js"></script>
<script src="js/d3/d3.js"></script>
<script src="js/nvd3/nv.d3.js"></script>
<link rel="stylesheet" href="css/nvcd3/nv.d3.css"/>
to something like
{{response.files.append(URL(r=request,c='static',f='/js/d3.js'))}}{{extend 'layout.html'}}
or from your controller:
(model code)
if request.controller in ("d3", "plot"):
response.files.append(...)
(controller code)
if not request.function in ["about", "index", "contact"]:
response.files.append(...)
There is detailed information on static files and the layout in the book
http://www.web2py.com/books/default/chapter/29/05#Page-layout
To the second part of your question:you have your html directive
<div ng-controller="ExampleCtrl">
<nvd3-line-chart
data="exampleData"
You have to code inside your angular module a controller called "ExampleCtrl"inside this controller you have to set$scope.exampleData=[]try filling this variable with data like in the examples from the directive.When you see it working you move to real data, a json feed from a web2py controller.It works !!!RegardsAntónio