使用Backbone js传递bootstrap-tour ui对象

时间:2015-08-11 20:08:53

标签: javascript backbone.js bootstrap-tour

我使用带有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我在其他地方使用它时出了什么问题。

1 个答案:

答案 0 :(得分:0)

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

var tourConfig = {};
tourConfig[this.ui.MENU_ITEM_DASHBOARD] = 'This is a title';
this._ui_tour(tourConfig);