Я пытаюсь использовать элемент управления диаграммой Wijmo ComponentOne на моем представлении Durandal.Durandal Wijmo Issue
Я пытаюсь загрузить элемент управления диаграммой на «прикрепленном» событии в модуле js. Кажется, что контроль Chart не делает, но вместо того, чтобы следующая ошибка броска:
Uncaught TypeError: Cannot read property 'startX' of undefined jquery.wijmo-pro.all.3.20132.9.min.js:26
(anonymous function)jquery.wijmo-pro.all.3.20132.9.min.js:26
jQuery.event.dispatchjquery-1.9.1.js:3074
elemData.handlejquery-1.9.1.js:2750
Даже при том, что ошибка, по-видимому, кажется, выброшен из сценариев элемента управления Wijmo, большинство, вероятно, Durandal поднимает вложенное событие до отображается вид. Другими словами, во время инициализации в DOM отсутствует макет.
Ниже приведен код, я бегу на FLICKR модуля Vanilla Дюрандаль Стартер Кит:
attached: function() {
$(document).ready(function() {
$("#wijpiechart").wijpiechart({
radius: 140,
hint: {
content: function() {
return this.data.label + " : " + Globalize.format(this.value/this.total, "p2");
}
},
header: {
text: "Steam Mac Hardware Survey"
},
seriesList: [{
label: "MacBook Pro",
data: 46.78,
offset: 15
}, {
label: "iMac",
data: 23.18,
offset: 0
}, {
label: "MacBook",
data: 20.25,
offset: 0
}, {
label: "Mac Pro",
data: 5.41,
offset: 0
}, {
label: "Mac Mini",
data: 3.44,
offset: 0
}],
seriesStyles: [{
fill: "180-rgb(195,255,0)-rgb(175,229,0)",
stroke: "rgb(175,229,0)",
"stroke-width": 1.5
}, {
fill: "90-rgb(142,222,67)-rgb(127,199,60)",
stroke: "rgb(127,199,60)",
"stroke-width": 1.5
}, {
fill: "90-rgb(106,171,167)-rgb(95,153,150)",
stroke: "rgb(95,153,150)",
"stroke-width": 1.5
}, {
fill: "90-rgb(70,106,133)-rgb(62,95,119)",
stroke: "rgb(62,95,119)",
"stroke-width": 1.5
}, {
fill: "90-rgb(166,166,166)-rgb(149,149,149)",
stroke: "rgb(149,149,149)",
"stroke-width": 1.5
}]
});
});
}
Простое исправление будет перерисовывать контроль после указанного кода с задержкой:
setTimeout(function() {
$("#wijpiechart").wijpiechart("redraw");
}, 100);
Но это, возможно, не изящное решение.
Есть ли какое-нибудь другое событие в Durandal для обработки этого вида элементов управления после отображения представления?