This may not be the crucial hint, but I noticed that your flare is a list 
(array).  If you checkout the structure at:
https://github.com/mbostock/d3/wiki/Cluster-Layout you see that its a dict 
(or object).

Try removing the [] around your flare definition. 

Secondly:   Where I have used XML(json... in the controller  it has been to 
produce a standaoone .json output from web2py, I then create an independent 
view that then uses the d3.json function to read the json output.   That is 
the approach that mostly matches the majority of d3 examples.   This works 
if you want to separate your data sources (thinking independent data api)  
from your presentation views.

The other approach is to use the variables, which you've done.  There may 
be more than one way to do this but this has worked for me:
1.  Change your flare definition to be a dict. remove the []
2.  Change your controller output to be return locals(). 
3.  In your view , in the <script> add:
    {{from gluon.serializers import json}}
    var flare = {{=XML(json(flare))}}





    

I think web2py is a good data provider for d3 apps

On Thursday, June 12, 2014 2:49:32 AM UTC+10, Richard wrote:
>
> Andrew,
>
> When I respond with flare=flare I get the & issue, solved by XML()
>
> Uncaught SyntaxError: Unexpected token & 
>
> My script starts with:
>
> <script>
>
> var width = 960,
>     height = 2200;
>
> var cluster = d3.layout.cluster()
>     .size([height, width - 160]);
>
> var diagonal = d3.svg.diagonal()
>     .projection(function(d) { return [d.y, d.x]; });
>
> var svg = d3.select("body").append("svg")
>     .attr("width", width)
>     .attr("height", height)
>     .append("g")
>     .attr("transform", "translate(40,0)");
>
>   var flare = {{=flare}} ;    
>     
>   var nodes = cluster.nodes( flare ),
>       links = cluster.links(nodes);
>
>   var link = svg.selectAll(".link")
>       .data(links)
>     .enter().append("path")
>       .attr("class", "link")
>       .attr("d", diagonal);
>
> Hope you can give me a crucial hint.
>
>
> On Wednesday, June 11, 2014 5:49:13 PM UTC+2, Andrew W wrote:
>>
>> What else is in your view?  Is the code inside a <script>?
>> What if you just returned dict( flare=flare) in your controller?
>>
>

-- 
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+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to