Проблема:
Посмотрим на проблемную строку:
bar.setAttribute("mouseover", this.showBlock(500, false));
Я вижу следующие проблемы:
this.showBlock(500, false)
, затем устанавливает его в атрибут mouseover
. Это значение, скорее всего, undefined
, так как ваша функция ничего не возвращает. mouseover
не имеет абсолютно никакого значения в HTML и Vue, что ищет v-on:mouseover
или @mouseover
. Возможные решения:
A) Убедитесь, что ваша модель Vue доступна как глобальная переменная (например, window.app
), затем вы можете выполнить трюк с атрибутом HTML onmouseover
и строкой вызова функции:
bar.setAttribute("onmouseover", "app.showBlock(500, false)");
B) Добавить прослушиватель событий вместо атрибута. Что-то вроде этого:
bar.addEventListener("mouseover", function () { app.showBlock(500, false); });
Это также требует, чтобы ваш экземпляр Vue был доступен.
См. Полное решение в ответе @ saiyan .
C) Поскольку вы не делаете ничего, что Vue не может сделать, вы можете (и я советую вам) использовать Vue для создания ваших элементов. На мой взгляд, это точка Vue, чтобы облегчить боль создания и модификации элементов. На основе вашего цитированного цикла for
реализация Vue будет выглядеть так (в вашем HTML):
Для полного решения, пожалуйста, ознакомьтесь с @ скриптой Берта .
Вы всегда перезаписываете все, что дает вам Excel. Поэтому, когда вы делаете:
sheet->writeStr(2, 1, L"Invoice No. 3568", titleFormat);
Вы передаете titleFormat
, что является nullptr
из-за строки:
if (titleFormat = nullptr)
Включите ваши предупреждения и исправьте свой код: [118 ]
if (titleFormat != nullptr)
И то же самое для всех других if
.