首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >角用户界面路由不会改变视图

角用户界面路由不会改变视图
EN

Stack Overflow用户
提问于 2016-04-05 04:28:58
回答 3查看 699关注 0票数 3

我在离子和ui路由方面有问题,当我进入子状态时,url会被更新,但是视图保持不变。

这是我的routing.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.config(function($stateProvider, $urlRouterProvider, $locationProvider, $ionicConfigProvider) {

    $ionicConfigProvider.views.maxCache(0);

    $stateProvider

        .state('app', {
            url: "/",
            abstract: true,
            templateUrl: "menu.html",
            controller: "menuCtrl"
        })

        .state('app.home', {
            url: "home",
            cache: false,
            views: {
                'menuContent': {
                    templateUrl: "home.html",
                    controller: "homeCtrl"
                }
            }
        })

        .state('app.search', {
            url: "search",
            views: {
                'menuContent': {
                    templateUrl: "search.html",
                    controller: "searchCtrl"
                }
            }
        })

        .state('app.search.product', {
            url: "/product/:id",
            views: {
                'menuContent': {
                    templateUrl: "productPage.html",
                    controller: "singleProductCtrl"
                }
            }
        })

        .state('app.search.product.market', {
            url: "/product/:id",
            views: {
                'menuContent': {
                    templateUrl: "market.html",,
                    controller: "marketCtrl'
                }
            }
        });
    // if none of the above states are matched, use this as the fallback
    $urlRouterProvider.otherwise('/home');
});

在本例中,当我尝试进入app.search.product时,视图不会改变,即使我直接在浏览器中插入正确的url。我也尝试过ui-sref-opts="{reload: true}“选项,但是没有什么变化。

下面是一个显示问题的柱塞(搜索后视图没有改变) https://plnkr.co/edit/JrNFkV50klZItOQS18Iu

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-05 05:10:41

我没有使用Ionic的经验,但是基于ui-路由器配置角需要一个嵌套视图,但是您的页面只有一个视图。也就是说,第二级(产品)没有要加载的视图。由于Ionic,我认为不允许嵌套的离子视图(如果它是有趣的),您可以使用正常的ui视图作为嵌套视图。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ion-view view-title="Search">
<ion-content>
    <h1>Search</h1>
    <a ui-sref=".product({id: 1})">Go to product</a>
    <ui-view name="secondLevel"></ui-view>
</ion-content>

在这里检查您的代码并进行修改:https://plnkr.co/edit/LdgmoAEo1pS9spi1Su1z

不知道这是不是你要找的。基于柱塞,您似乎意外地定义了嵌套视图。在这种情况下,解决方案将是将.search*.product状态名称:https://plnkr.co/edit/PGICsBhzyCOTSe9af4yu中删除。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        .state('app.product', {
            url: "/product/:id",
            views: {
                'menuContent': {
                    templateUrl: "productPage.html"
                }
            }
        })

        .state('app.market', {
            url: "/product/:id",
            views: {
                'menuContent': {
                    templateUrl: "market.html"
                }
            }
        });
票数 2
EN

Stack Overflow用户

发布于 2016-04-05 04:37:26

使用此配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   $stateProvider

        .state('app', {
            url: "/",
            abstract: true,
            templateUrl: "menu.html",
        })

        .state('app.home', {
            url: "home",
            views: {
                'menuContent': {
                    templateUrl: "home.html"
                }
            }
        })

        .state('app.search', {
            url: "search",
            views: {
                'menuContent': {
                    templateUrl: "search.html"
                }
            }
        })

        .state('app.product', {
            url: "/product/:id",
            views: {
                'menuContent': {
                    templateUrl: "productPage.html"
                }
            }
        })

        .state('app.market', {
            url: "/product/:id",
            views: {
                'menuContent': {
                    templateUrl: "market.html"
                }
            }
        });

例如,当您声明'app.search.product‘时,这意味着在搜索状态(search.html)的模板中应该有一个加载子状态的视图,而事实并非如此,您的视图一直在同一“级别”移动

票数 2
EN

Stack Overflow用户

发布于 2016-04-05 04:36:47

尝试将产品状态的ui-sref名称放入到产品链接标签中。即ui-sref="app.product“

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

https://stackoverflow.com/questions/36426407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文