如何将bootstrap-tour与emberjs集成

时间:2012-09-08 22:17:04

标签: ember.js handlebars.js

我不确定如何在emberjs中使用bootstrap-tour ** https://github.com/pushly/bootstrap-tour。 Bootstrap-tour的文档** http://pushly.github.com/bootstrap-tour/

挑战在于,与其他jquery插件不同,我们可以通过以下方式进行集成:

didInsertElement: function() {
  this.$().jQueryPlugin();
}

Bootstrap-tour需要使用不同的模式,到目前为止,为了将它与emberjs集成而尝试的所有内容都无法正常工作:

App.SiteTour = Ember.View.extend({
  templateName: 'whatever',

  didInsertElement: function(){
    this._super(),

    //var tour = new Tour();

      this.tour = new Tour();

    tour.addStep:({
      element: "#one",
      title: "Step 1",
      content: ' '
    });

    tour.addStep:({
      element: "#two",
      title: "Step 2",
      content: ' '
    });

    tour.start();

  }
});

这不起作用,这也不起作用:

 this.$().load({

    tour.addStep({
     element: "#one",
     title: "Step 1",
     content: "Content for step 1"
   });

  tour.addStep({
     element: "#two",
     title: "Step 2",
     content: "Content for step 2"
   });

 },


   tour.start();

});

最后这个emberjs和bootstrap-tour的jsfiddle也无法工作:

http://jsfiddle.net/GqG3U/5/

但这个没有emberjs的作品:

http://jsfiddle.net/GqG3U/4/

更新

这个jsfilddle ** http://jsfiddle.net/GqG3U/6/不会抛出任何错误,但是当我使用脚本标签时,把手不会显示。但是,如果没有脚本标记,则会显示。

2 个答案:

答案 0 :(得分:2)

我添加了working version

你在那里的代码非常接近,你只是没有正确地分配巡回变量并需要实例化应用程序。

如果您使用ApplicationViewApplicationController设置应用程序并调用initialize,则最新版本的Ember最有效。我知道这对jsFiddles来说有点尴尬但是否则会导致奇怪的错误。

答案 1 :(得分:1)

我尝试重构你的代码,现在它更干净(也有效):

http://jsfiddle.net/GqG3U/14/

将HTML放入把手脚本块是“Ember Way”:)

PS:在Chrome下,您应该调用tour“this.tour.start(true);”。