KnockoutJSおよびjCanvasに関連する別の問題が発生しました。私のモデルとViewModel:mouseoverイベントでKnockoutJSの指定したデータを表示するjCanvas
eventsModel = function() {
var self = this;
self.events = ko.observableArray([]);
}
eventItemViewModel = function(o) {
var self = this;
self.BeginInMinutes = ko.observable(o.BeginInMinutes);
self.EventDuration = ko.observable(o.EventDuration);
self.Type = ko.observable(o.Type);
self.ReferenceNumber = ko.observable(o.ReferenceNumber);
self.FullDescription = ko.computed(function() {
var eventType = self.Type() == '0' ? 'Driving' : 'Resting';
var hour = Math.floor(self.BeginInMinutes()/60);
var minutes = Math.floor(self.BeginInMinutes() % 60) < 10 ? '0' + Math.floor(self.BeginInMinutes() % 60) : Math.floor(self.BeginInMinutes() % 60);
return hour + ':' + minutes + " " + eventType + " " + self.EventDuration();
}, this);
};
var events = new eventsModel();
ko.applyBindings(events);
私はこれで十分だと思います。基本的に、このFullDescriptionを私のキャンバスの上に表示したいのですが、問題はそれが配列に含まれているということです。キャンバスにはいくつかの図面があり、このすべてのプロパティはキャンバスの四角形で結ばれています。私は次のようなことをしたい:jCanvasのrectangleのmouseoverイベントで、私はfullDescriptionをキャンバスの上にプレーンテキストで表示したい。
knockout data-bind foreachなどを使ってテーブルに情報を表示していますが、今はコレクション全体からこの情報を表示したいと考えています。私はバインドしてみましたが、うまくいきませんでした。
マイキャンバス:
<canvas id="myCanvas" width="1000" height="300"></canvas>
そしておそらく、私の前の質問には、いくつかの旅行の一番の情報を持っている:Knockout observablearray of observables with arrayMap function
私はそれを配列からのみ指定したフィールドを取得するための、いくつかの簡単な方法であることを確信しています。
ありがとうございます。
しかし、配列のすべての要素ごとに複数のキャンバスを表示したい場合は、基本的にはうまくいきます。私の目的は、1から15の矩形の乱数を持つ1つのキャンバスを持つことです。マウスがこの長方形の1つ上にあるとき、キャンバスの上にそのキャンバスの説明を表示します。 – zari