jquery.js: 3818 jQuery.Deferred исключение: valueLabel не определено ReferenceError: valueLabel не определено - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь обновить существующую версию библиотеки Underscore JS до последней версии в моем проекте.

Underscore.js - от 1.4.4 до 1.9.1

Существующие версии библиотеки -

jquery - 2.2.4
Плагин проверки jQuery - 1.11.0
Плагин загрузки файла jQuery - 1.4.2
Требуется js - 2.1.5

Однако я вижу эту проблему (в консоли Chrome) взагрузка страницы после обновления версии Underscore.

Вот ошибка

jquery.js:3818 jQuery.Deerred exception: valueLabel is not defined ReferenceError: valueLabel is not defined
        at HTMLElement.eval (eval at h.template (https://xx.xxxx.com/js/lib/underscore.js?v=VERSION:5:16765), <anonymous>:6:20)
        at HTMLElement.u (https://xx.xxxx.com/js/lib/underscore.js?v=VERSION:5:16858)
        at access (https://xx.xxxx.com/js/lib/jquery.js:3956:12)
        at jQuery.fn.init.html (https://xx.xxxx.com/js/lib/jquery.js:5959:10)
        at renderPageFooter (https://xx.xxxx.com/js/view/app.js?v=VERSION:44:36)
        at r._renderPageContent (https://xx.xxxx.com/js/view/app.js?v=VERSION:17:14)
        at N (https://xx.xxxx.com/js/lib/underscore.js?v=VERSION:5:7894)
        at Object.<anonymous> (https://xx.xxxx.com/js/lib/underscore.js?v=VERSION:5:8096)
        at Object.<anonymous> (https://xx.xxxx.com/js/lib/underscore.js?v=VERSION:5:1247)
        at mightThrow (https://xx.xxxx.com/js/lib/jquery.js:3534:29) undefined

VM6910:6 Uncaught ReferenceError: siteName is not defined
        at HTMLElement.eval (eval at h.template (underscore.js?v=VERSION:5), <anonymous>:6:8)
        at HTMLElement.u (underscore.js?v=VERSION:5)
        at access (jquery.js:3956)
        at jQuery.fn.init.html (jquery.js:5959)
        at render (page.header.js?v=VERSION:26)
        at app.js?v=VERSION:15
        at Object.execCb (require.js:1696)
        at Module.check (require.js:883)
        at Module.<anonymous> (require.js:1139)
        at require.js:134

Код renderPageFooter в app.js -

define([
    'underscore',
    'backbone',
    'vm',
    'jquery.soha'
], function (_, Backbone, libVm, libApp) {
    "use strict";

    var _renderPageContent = function (inputOpt) {
        var thisRef = this;

        require(['view/page.header'], function (headerOfPage) {
            var ViewOfHeader = libVm.create(thisRef, 'headerOfPageViewer', headerOfPage);
            ViewOfHeader.render(inputOpt);
        });

        this.renderPageFooter(inputOpt);
        // Some code here
    };

    var viewOfApplication = Backbone.View.extend({
        // Some code here
        renderPageFooter: function(inputOpt) {
            var modelOfFooter = null;
            modelOfFooter = libVm.getAppConfig().getFooter(inputOpt);
            if (!libVm.isFed()){
            // During Chrome debug, the pointer doesn't reach this 'if' block. 
                modelOfFooter.valueLabel[0].href = modelOfFooter.valueLabel[0].href.replace(/\?variableAgent=\D\D/,"");
                modelOfFooter.valueLabel[0].href = modelOfFooter.valueLabel[0].href + "?variableAgent=" +libVm.currentvariableAgent;
            } 
          var tmplt = libVm.getTemplate('tmpl-footerOfPage', modelOfFooter);
          $('footer#footerOfPage').html(tmplt);
        },
     });
});

Из журнала выше -

at renderPageFooter (https://xx.xxxx.com/js/view/app.js?v=VERSION:44:36)

ВApp.js, это указывает на строку

$('footer#footerOfPage').html(tmplt);

Я довольно новичок в Javascript и, возможно, пропустил более важную информацию, необходимую для этой проблемы.Можете предоставить больше, если спросят.

Может ли кто-нибудь помочь мне найти правильное направление, чтобы найти решение для такой ошибки и любое возможное решение для ее исправления?

1 Ответ

0 голосов
/ 12 июня 2018

Просмотр документации для функции _.template () - http://underscorejs.org/#template для версии 1.9.1.

Функция утилиты шаблона принимает строку шаблона в качестве первого аргумента и возвращает функциюкоторые вы можете использовать для передачи данных вашего шаблона:

// `testTemplate` here is a function!
var testTemplate = _.template("<p><%= name %></p>");

// Now let's pass in the data for the template.
testTemplate({name: 'Joe Doe'}); 

// it returns: "<p>Joe Doe</p>"
...