Knockout.js 在knockout和breeze中添加带有D3的svg元素
我在做水疗。我试图做的是使用 我可以将饼图添加到Knockout.js 在knockout和breeze中添加带有D3的svg元素,knockout.js,d3.js,breeze,Knockout.js,D3.js,Breeze,我在做水疗。我试图做的是使用 我可以将饼图添加到body标记中,但如果我将其更改为另一个标记,它将不会呈现。我想把它添加到这个id#图中 home.js home.html 我打赌在呈现html之前调用javascript(是否在html页面的页眉中包含javascript文件?) 有两种解决方案: 在定义标记(页脚)后加载呈现图形的脚本 将调用放在类似于$(function(){…})的内容中,这是函数的快捷方式 这是一种全新的击倒/微风技术。那么在当前的breeze设置中没有这样的位置?我仍
body
标记中,但如果我将其更改为另一个标记,它将不会呈现。我想把它添加到这个id#图中
home.js
home.html
我打赌在呈现html之前调用javascript(是否在html页面的页眉中包含javascript文件?)
有两种解决方案:
在定义标记(页脚)后加载呈现图形的脚本
将调用放在类似于$(function(){…})
的内容中,这是函数的快捷方式李>
这是一种全新的击倒/微风技术。那么在当前的breeze设置中没有这样的位置?我仍然可以将svg对象绑定到viewmodel(vm)上,这样我就可以像普通的可观察对象一样使用它了吗?我不知道breeze或knockout。很抱歉
define(['services/logger'], function (logger) {
var vm = {
activate: activate
};
//#region Internal Methods
function activate() {
// Do the graph
return doGraph();
}
function doGraph() {
//Width and height
var w = 300;
var h = 300;
var outerRadius = w / 2;
var innerRadius = w / 3;
var arc = d3.svg.arc()
.innerRadius(innerRadius)
.outerRadius(outerRadius);
var pie = d3.layout.pie();
//Easy colors accessible via a 20-step ordinal scale
var color = d3.scale.category20();
//Create SVG element
var svg = d3.select("#thegraph") // This only works if I change #thegraph to body
.append("svg")
.attr("width", w)
.attr("height", h);
}
//#endregion
return vm;
});
<section>
<div class="thegraph" id="thegraph"></div>
</section>