首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@并命名为“在同一状态视图上不使用解析”

@并命名为“在同一状态视图上不使用解析”
EN

Stack Overflow用户
提问于 2014-11-09 03:40:53
回答 1查看 60关注 0票数 1

我有一个名为“index”的状态,根据页面上的ui视图,显示不同的信息,具有不同的templateUrl,并共享相同的URL:

代码语言:javascript
复制
    $stateProvider.state('index', {
        url: '/',
        views: {
            'all@': {
                templateUrl: '/templates/partials/all/index',
                controller: function(){
                    console.log('main');
                }
            },
            '@': {
                templateUrl: '/templates/partials/home/index',
                controller: Controllers.Index,
                controllerAs: 'academia',
                resolve: {
                    templates: Preload.go(),
                    academia: ['Info', (Academia: Academia.Services.Info) => {
                        return Academia.get();
                    }],
                    plans: ['Planner', (Planner: ngPlanner.Planner) => {
                        return Planner.init();
                    }]
                }
            }
        }
    });

当使用<div ui-view></div>加载页面时,它按预期工作(与“@”规则匹配)。但是,当页面加载了<div ui-view="all"></div>时,就没有了。

显示问题http://plnkr.co/edit/a2SWbB?p=preview的柱塞

未命名的@的解析不应该干扰all@视图。当前的解析被拒绝,因为它不属于当前视图(因为加载页面时没有未命名的视图)。是虫子,还是我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-09 08:18:16

现在,UI-Router实现是由状态管理驱动的。尽管事实是,有一些声音/要求来分割视图的决心(嗯,不是父视图还是子视图--但下面将讨论这一点).我想说的是,上面描述的Q&A中的当前行为只是正确的

第一,上述问题的问题是甚麽?通常有两个或多个同级视图,它们有自己的解决方案定义:

代码语言:javascript
复制
views: {
    'view1': {
          ....
          resolve : { // could fail
        }
    },
    'view2': {
        ...
        resolve:    { // could fail as well
    ...

什么是状态?

状态是一组设置,表示状态。(听起来像http://en.wikipedia.org/wiki/Tautology_%28logic%29,但我是认真的)。所有的设置都是关于状态定义的,关于一种特定的状态。

我们可以使用更多的视图来表示它(例如标题和内容)。

我们可以使用一些解析语句(对于所有的同级视图,对其中的一些视图)来支持这些视图。

我们仍然只有一个状态。

就是这样。这不是全部就是什么都没有。状态是一个、一个设置集群,所有这些设置都必须工作/解决--否则整个状态都失败了。

另一个故事:亲子

还有一些要求,允许父视图在解决了其所有内容后呈现。为什么?当前,如果我们直接导航到child状态,则必须在启动状态之前解析所有/两个解析,然后呈现视图。

这是可以改进的。讲得通。据我所知,这是计划在以后的版本(我发誓,我已经看到了UI-路由器团队成员-但找不到它的评论之一)。

情况就不一样了。因为1)我们可以先转到父(列表视图)。然后2)选择子(细节)。在这种情况下,可能真的会发生列表起作用,细节失败的情况。

所以直接去找孩子应该是父母,下一个孩子失败了.但这与上面描述的兄弟姐妹不同。

建议:

我的建议是,只保留resolve的东西,这是必不可少的,一个国家绝对必须的。将其余的移动到注入服务的控制器中。这是我的建议和我的方式..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26824737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档