小编Ike*_*Ike的帖子

惯用Emberjs用于嵌套路由但非嵌套模板

这是了解Ember路线的后续行动.

主/详细视图很棒,但我正在尝试使用分层URL路由而不嵌套模板.但是,对于像痕迹链接和其他引用这样的东西,我仍然需要访问父模型.

所以/users/1/posts应该显示用户1的帖子列表.并且/users/1/posts/1应该为用户1显示帖子1,但它不应该在user模板内部呈现{{outlet}}.相反,它应该完全取代user模板.但是,我仍然需要访问post模板中的当前用户,以便我可以链接回用户,显示用户的姓名等.

首先我尝试了这样的方法(方法#1):

App.Router.map(function() {
  this.resource('user', { path: '/users/:user_id' }, function() {
    this.resource('posts',  function() {
      this.resource('post', { path: '/:post_id' });
    });
  });
});

...

App.PostRoute = Ember.Route.extend({
  model: function(params) {
    return App.Post.find(params.post_id);
  },
  renderTemplate: function() {
    this.render('post', {
      into: 'application'
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,这将user模板替换为模板post.但是,当我单击浏览器的后退按钮时,user模板不会再次渲染.显然,后视图被销毁但父视图未被重新插入.这里有几个问题提到这一点.

然后我让它用这样的东西(方法#2):

App.Router.map(function() {
  this.resource('user', { path: '/users/:user_id' },  function() {
    this.resource('posts');
  this.resource('post', { path: '/users/:user_id/posts' …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-router

17
推荐指数
1
解决办法
3599
查看次数

Bootstrap 3.0 scrollspy响应偏移

我试图让Bootstrap的scrollspy在响应式网站上可靠地工作,其中顶部导航栏的高度根据媒体/浏览器的宽度而变化.因此,不是硬编码data-offset属性的偏移量,而是通过Javascript初始化动态设置它,如下所示:

$('body').scrollspy({ offset: 70, target: '#nav' });
Run Code Online (Sandbox Code Playgroud)

对于宽布局(即Bootstrap -lg),它可以正常工作,但对于较窄的布局,似乎存在"累积"偏移.换句话说,它适用于第一部分,但随后需要增加像素来激活以下部分(例如,下一个为90px,第三部分为110px等).

我尝试直接操作scrollspy对象,如下面的答案中所述: 如何在Bootstrap中设置ScrollSpy的偏移量?但无济于事.

有人可以推荐一种在响应式网站中实现scrollspy的规范方法,其中偏移量根据媒体宽度而变化吗?

附加信息:

我刚刚在两个场景中分析了scrollspy对象,结果发现当通过data-属性而不是通过JS 初始化时,偏移列表是不同的.看起来当我通过JS初始化它时,偏移数组会在一些BS响应调整发生之前填充,因此高度不同.所有响应式内容运行后,如何触发scrollspy的初始化?BS调整布局后是否有钩子/回调?JS是否参与或者是由CSS处理的所有响应式内容?

responsive-design twitter-bootstrap scrollspy twitter-bootstrap-3

9
推荐指数
2
解决办法
2万
查看次数

在Scala中进行结果分页的更好方法

我经常进行分页(给定页码和页面大小计算开始页,结束页和总页数),我从Java移植这个小函数来帮助:

def page(page: Int, pageSize: Int, totalItems: Int) = {
    val from = ((page - 1) * pageSize) + 1
    var to = from + pageSize - 1
    if (to > totalItems) to = totalItems
    var totalPages: Int = totalItems / pageSize
    if (totalItems % pageSize > 0) totalPages += 1
    (from, to, totalPages)
}
Run Code Online (Sandbox Code Playgroud)

并在接收方:

val (from, to, totalPages) = page(page, pageSize, totalItems)
Run Code Online (Sandbox Code Playgroud)

虽然它有效,但我确信在Scala中有更多可读和功能性的方法来做同样的事情.什么是更像scala的方法?

特别是,我正试图找到一种更好的说法:

var to = from + pageSize - 1
if (to > totalItems) to = …
Run Code Online (Sandbox Code Playgroud)

paging pagination scala

4
推荐指数
1
解决办法
2845
查看次数