辞書(JavaScriptオブジェクト)に入力し、文字列インデックスを使用して辞書から値(カスタムオブジェクト/クラス)を取得しようとしています。次に、ディクショナリから値を取得したら、このオブジェクトのメソッドを呼び出す必要があります。残念ながら、ディクショナリから取得されると、それは単なるオブジェクト(typeof
「オブジェクト」を返す)であるため、これは機能しません。
したがって、私がやろうとしているのは、最初にディクショナリにプッシュされたオブジェクトタイプにキャストすることです。これは私の場合は次のとおりgoogle.visualization.Gauge
です。(参考)
Object.createを使おうとしましたが、うまくいきませんでした。以下は私のコードです:
var _gauges = {};
var methods = {
init: function (options) {
var containers = this;
if (containers != null && containers != undefined && containers.length > 0) {
containers.each(function (index, elem) {
var id = $(elem).attr('id');
var name = $(elem).data('name');
var value = $(elem).data('value');
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
[name, value]
]);
var options = {
width: 400, height: 120,
redFrom: 90, redTo: 100,
yellowFrom: 75, yellowTo: 90,
minorTicks: 5
};
var cont = document.getElementById(id);
var chart = new google.visualization.Gauge(cont);
_gauges[name] = chart;
chart.draw(data, options);
});
}
},
setValue: function (gaugeName, newValue) {
var thisGauge = _gauges[gaugeName];
if (thisGauge) {
thisGauge.setCell(0, 1, newValue);
//var tmp = Object.create(google.visualization.Gauge, thisGauge);
//tmp.setCell(0, 1, newValue);
}
}