0

我正在使用带有 Backbone/Marionette 应用程序的 boostrap-tour 版本 10.1。我已经扩展了我的基本视图原型以包含一个游览(通过自定义函数 _ui_tour() ),但是我无法将step要应用的元素传递给它。

Layout.SideBarView = App.Views.ItemView.extend({
    template: App.Templates['main-layout-sidebar'],

    ui: {
        MENU_ITEM_DASHBOARD: '[data-js-menu-item-dashboard]'
    },

   ...

    onShow: function () {
        this._ui_tour({
            this.ui.MENU_ITEM_DASHBOARD: 'This is a title' //this breaks it
        })
    }
});

使用以下代码交换对 _ui_tour 的调用非常有效。

this._ui_tour({
            '[data-js-menu-item-dashboard]': 'This is a title'
        })

我基础中的 _ui_tour 函数如下所示:

_ui_tour: function (items) {
    for (var key in items) {
        var tour = new Tour({ debug: true });
        tour.addStep({
            element: key,
            title: items[key],
            content: 'This is content'
        });
        tour.init();
        tour.start(true);
        }
    }
}

错误状态:Uncaught SyntaxError: Unexpected token .我不知道this.ui.BLANK because在其他地方使用它有什么问题。

4

1 回答 1

0

如果要动态设置对象的属性不能使用字面量语法,需要先实例化对象,然后通过数组语法设置属性及其值,即

var tourConfig = {};
tourConfig[this.ui.MENU_ITEM_DASHBOARD] = 'This is a title';
this._ui_tour(tourConfig);
于 2015-08-14T13:21:02.940 回答