Короче говоря, в другой части программы я делаю холсты, конвертирую их в DataURL, а затем передаю их следующей части, чтобы использовать в качестве изображения значков кнопок. Всякий раз, когда я поставил this.icon = «/path/to/image.jpg», она тянет его правильно, но так как эти изображения не на диске, я не уверен, какExtJS Как установить значок кнопки для изображения в памяти (а не на диске)?
arrowHandler: function (arrow) {
var list = [];
var library = Ext.getCmp("library");
var buttons = Ext.getCmp("numbered").menu.buttons; //where the dataURLs are pushed in another portion of the program
function btn(num) {
var image = new Image;
image.src = buttons[num].dataURL;
this.xtype = "button";
this.height = 50;
this.width = 50;
this.icon = image; //where putting an actual path works correctly, but this code doesn't
this.num = num;
this.handler = function (btn) {
btn.up("button").menu.Style = this.num;
btn.up("button").fireEvent("selected", this.num);
};
}
for (var i = 0; i <= 0; i++)
library.items.items.push(new btn(i));
},
Я знаю, петля только проходящий через индекс 0 - это как это целенаправленно для тестирования.
РЕШЕНИЕ
Выбранный правильный ответ сделал обеспечить правильный путь, чтобы установить значок с DataURI, но это было не исправление к моему вопросу. Оказывается, вместо того, чтобы делать
library.items.items.push(new btn(i));
мне нужно делать
library.add(new btn(i));
Ошибка я продолжал сталкиваться с толкая был «c.render() не является функцией». Я упоминаю, что только для того, чтобы надежно найти кого-либо, кто сталкивается с этой ошибкой.
Хорошо, что в основном то, что моя оригинальная первая попытка была. Когда я делаю это, я получаю «TypeError: c.render() не является функцией» (конечно, в мини-выходе) - не уверен, что вызывает это, но подумал, что вы можете подумать. –
Можете ли вы отправить мне пример холста? Я постараюсь это поиграть. –