Tworzę aplikację, w której na płótnie malowane są różne prostokąty i próbuję to zrobić za pomocą Trzonu. Mam model o nazwie pole:Tworzenie widoku Backbone.js do rysowania obiektów na płótnie
Box = Backbone.Model.extend({
defaults: {
x: 0,
y: 0,
w: 1,
h: 1,
color: "#FF9000",
linewidth: 3,
id: 0,
},
drawBox: function(ctx) {
ctx.fillStyle = "#FF9000";
ctx.globalAlpha = 0.1;
ctx.fillRect(this.get("x"), this.get("y"), this.get("w"), this.get("h")); //transparent box in the back
ctx.globalAlpha = 1;
ctx.strokeStyle = this.get("color");
ctx.lineWidth = this.get("linewidth");
ctx.strokeRect(this.get("x"), this.get("y"), this.get("w"), this.get("h")); //rectangle on top
}
});
I mam również kolekcję tego modelu nadwozia:
BoxSet = Backbone.Collection.extend({
model: Box
});
Co mam na myśli, aby mieć widok, w którym można umieścić każdy model Box w kolekcja BoxSet na płótnie za pomocą metody drawBox w modelu Box, ale do tej pory wszystkie tutoriale i przykłady zajmują się prostymi szablonami tekstowymi i nie mogę wymyślić, jak to osiągnąć.
Wszelkie pomysły na temat tego, jak można tego dokonać za pomocą widoków kręgosłupa?
Z góry dziękuję.
Dzięki @nikoshr, jest doskonałym rozwiązaniem. Daje mi to większą kontrolę nad kwadratami i sprawia, że bardziej elastyczne jest wprowadzanie dalszych modyfikacji. – rpabon
Jakieś pomysły, w jaki sposób SetView może malować lub usuwać pudełka z płótna za każdym razem, gdy ktoś je dodaje/usuwa z kolekcji? – rpabon
@rpabon Dodałem możliwe rozwiązanie, w którym wszystko zostanie przerysowane. Interesujące może być sprawdzenie, czy zestaw instrukcji można zdefiniować jako obiekt i manipulować niezależnie na płótnie. – nikoshr