将幻灯片添加到emberJS模板页面

时间:2015-11-03 20:24:51

标签: javascript ember.js ember-cli flexslider

编辑:进行了一些挖掘并且emberJS不允许内联脚本执行。我将如何创建幻灯片?我是否创建了一个组件?

我刚刚开始使用emberJS。我按照Ember网站上的指南进行了观察并在这里学习,但我发现自己有点死路一条,我需要你的帮助!

情况如下: 我想在我的一个模板中添加幻灯片。现在,尽我所能,我已经使用'BOWER INSTALL'添加了幻灯片.js和.css,然后编辑了我的'ember-cli-build.js'以引用这两个依赖项的app.import。

这是一个基本的网页,例如“关于我”,“服务”,“联系我们”。没有什么花哨。假设我想将此幻灯片添加到“服务”页面,首先当我访问网站时它加载没有任何问题但是当我使用{{#link-to}}功能在模板/页面之间切换时它会消失并赢得再加载。

任何人都可以解释我应该如何在模板上添加内联脚本?

对不起初学者的问题。

为了让我能够运行幻灯片放映,我需要在页面上的DOM元素之后执行以下脚本。

<script type="text/javascript">
      $(window).load(function() {
        $('.flexslider').flexslider();
      });
</script>

HTML如下:

<div class="flexslider">
  <ul class="slides">
    <li>
      <img src="http://placehold.it/350x150/0889d8/000000" />
    </li>
    <li>
      <img src="http://placehold.it/350x150/c1a4f0/ffffff" />
    </li>
    <li>
      <img src="http://placehold.it/350x150/8b4513/000000" />
    </li>
  </ul>
</div>

2 个答案:

答案 0 :(得分:3)

您可以使用已经执行此操作的ember插件:ember-cli-slick

使用以下方式安装:

ember install ember-cli-slick

您可以在模板中使用它,如下所示:

{{#slick-slider autoplay=true arrows=false}}
    <div class="box"> <img src="https://static2.businessinsider.com/image/4f3433986bb3f7b67a00003c/a-parasite-found-in-cats-could-be-manipulating-our-brains.jpg"> </div>
    <div class="box"> <img src="https://static2.businessinsider.com/image/4f3433986bb3f7b67a00003c/a-parasite-found-in-cats-could-be-manipulating-our-brains.jpg"> </div>
    <div class="box"> <img src="https://static2.businessinsider.com/image/4f3433986bb3f7b67a00003c/a-parasite-found-in-cats-could-be-manipulating-our-brains.jpg"> </div>
    <div class="box"> <img src="https://static2.businessinsider.com/image/4f3433986bb3f7b67a00003c/a-parasite-found-in-cats-could-be-manipulating-our-brains.jpg"> </div>
{{/slick-slider}}

如果您想了解如何制作幻灯片组件,请查看源代码: https://github.com/laantorchaweb/ember-cli-slick/blob/master/addon/components/slick-slider.js

这只是slick.js插件的包装组件。你会对flexslider插件做同样的事情。

答案 1 :(得分:3)

我尝试使用光滑的插件,但遇到了问题。所以我创建了另一个包含jquery unslider插件的ember插件。查看ember-cli-unslider

请参阅simple demo

un-slider组件需要一系列幻灯片。在其块中,您必须定义用于每张幻灯片的HTML内容。

{{#un-slider slides=model as |slide|}}
<img src="{{slide.url}}"/>
{{/un-slider}}

在上面的示例中,model可能如下所示:

[
  { url: 'https://placeholdit.imgix.net/~text?txtsize=33&txt=slide 1&w=600&h=400' }, 
  { url: 'https://placeholdit.imgix.net/~text?txtsize=33&txt=slide 2&w=600&h=400' }, 
  { url: 'https://placeholdit.imgix.net/~text?txtsize=33&txt=slide 3&w=600&h=400' }
];