【问题标题】:How to let element positioned to the browser window in Ember.js?如何让元素定位到 Ember.js 中的浏览器窗口?
【发布时间】:2015-02-15 18:11:04
【问题描述】:

似乎只有在应用程序模板中使用position: fixed 时才有效,如果我将元素放在其他模板下(比如说索引),它将基于 ember-view 而不是浏览器窗口定位。

那么我如何确保元素保持在当前视图的底部?

谢谢。

解决方案:

感谢@Kalman 提出的条件渲染方法,我花了一些时间,所以我所做的是:

在 application.hbs 下有一个命名的插座:

<div class="position-fixed-bottom">
  {{outlet "placeToPutElement"}}  
</div>


当在路线中我需要该元素时,使用指定的控制器通过renderTemplate 将其渲染出来:

App.SomeRoute = Ember.Route.extend({
  renderTemplate: function()
   {
    this.render('addbtn', {into:'application', outlet: 'placeToPutElement', controller: 'controllerName'})
    //Render other content 
   }
});

所以当我们调用它时,元素将在应用程序模板中呈现时相对于窗口保持底部。 (记得使用position: fixed

【问题讨论】:

    标签: css ember.js css-position


    【解决方案1】:

    当使用{{ outlet }} 助手时,您的模板将始终插入父模板中(抱歉,无法避免双关语:))。因此,根据定义,这意味着您将无法控制它在整个页面上的显示位置。

    您可能想要的是使用 render 帮助器。

    看一个例子here

    【讨论】:

    • 感谢卡尔曼的回复 :) 所以即使使用渲染,我们也可以让元素停留在内容的底部,而不是窗口,对吧?
    • 对,但是application 模板可以占据整个窗口,不是吗?
    • 是的。很抱歉我可能以错误的方式提出问题,让我编辑我的问题。
    • 如果该元素放置在application 模板中,它将在整个应用程序中显示,但我只在某些模板中需要它。有什么解决办法吗?
    • 您可以有条件地在应用程序模板中呈现页脚 - 查看以下emberjs.jsbin.com/dilapu/2/edit
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 2016-05-08
    • 1970-01-01
    相关资源
    最近更新 更多