Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember.js URL如何表示每个可能的路由器状态?_Javascript_Ember.js - Fatal编程技术网

Javascript Ember.js URL如何表示每个可能的路由器状态?

Javascript Ember.js URL如何表示每个可能的路由器状态?,javascript,ember.js,Javascript,Ember.js,在emberjs.com上的路由文档中,它指出 用户当前是否已登录?他们是管理员用户吗?他们在看什么帖子?设置屏幕打开了吗?他们正在编辑当前的帖子吗? 在Ember.js中,应用程序中的每个可能状态都由URL表示 我似乎不明白:上面所有可能的状态怎么可能都用URL表示 说明: 就我所见,余烬路由器是一个严格的层次树结构。对我来说,这对于简单的URL来说非常有意义,例如 user/:user\u id/posts/:post\u id/comments 它是单个帖子评论的定位器 现在,用户的登录状

在emberjs.com上的路由文档中,它指出

用户当前是否已登录?他们是管理员用户吗?他们在看什么帖子?设置屏幕打开了吗?他们正在编辑当前的帖子吗? 在Ember.js中,应用程序中的每个可能状态都由URL表示

我似乎不明白:上面所有可能的状态怎么可能都用URL表示

说明:

就我所见,余烬路由器是一个严格的层次树结构。对我来说,这对于简单的URL来说非常有意义,例如

user/:user\u id/posts/:post\u id/comments

它是单个帖子评论的定位器

现在,用户的登录状态将转到哪里?这不会为同一资源创建多个URL吗,或者这无关紧要

如果您的设置屏幕是一个可以从网站上任何地方访问的模式,那么url中会如何反映这一点

我不是在寻求解决办法,只是想了解一下指南中的含义或最佳实践是什么。

好问题康拉德

我将提供我在Ember中完成的多个项目的一些经验

  • 我很少将用户添加到路由中,很可能除了当前登录的用户之外,您不会发送任何内容(当然,除非您正在构建管理资源)。因此,在url中定义用户id可能是不正确的,因为它没有定义当前页面,而是定义了查看当前页面的用户

  • 登录状态将与其他资源路由无关。它将位于根目录下,登录后您将重定向到授权路由。如果有人直接导航到授权路由,有一些好的模式可以暂停转换,导航到登录路由,然后在有效登录时重定向到授权路由

  • 通常,对于单个资源,您有多个路由

    App.Router.map(function() {
       this.resource('login');
       this.resource('post', { path: '/post/:post_id' }, function() {
         this.route('edit');
         this.route('someViewWithTheSameResource');
         this.route('someViewWithTheSameResource2');
         this.resource('comments', function() {
            this.route('new');
            this.route('update');
         });
       });
     });
    
  • 祖父的问题是情态动词。最初,这只是一个不在url中处理它的问题,如果不在不同的设置下添加一百万条路由,就没有好的方法来处理这个问题。随着查询参数的即将更改,您可以在根级别修改设置,而不必弄乱整个资源树。这仍然是测试版,所以它可能不像预期的那样工作,但目标是能够处理这样的用例