$ statprovider angularJs不起作用

$stateProvider angularJs not working

本文关键字:不起作用 angularJs statprovider      更新时间:2023-09-26

我的页面上有一个按钮:

<button ui-sref=".viewer({maId: gridItem.MAID})" class="btn btn-info">
  <span class="glyphicon glyphicon-search"></span>
</button>

点击我想用ui-sref改变状态。我当前处于状态/状态,我想进入/status/{maId}状态。

这是我的routes.js

(function () {
    'use strict';
    angular
    .module('MA.status')
    .config(function ($stateProvider) {
        $stateProvider
            .state('status', {
                url: '/status',
                controller: 'Status as vm',
                templateUrl: 'app/pages/status/status.html?v=0.0.1'
            })
            .state('status.viewer', {
                url: '/:maId',
                controller: "Viewer as vm",
                templateUrl: 'app/pages/status/viewer.html?v=0.0.1',
                resolve: {
                    maId: function ($stateParams) {
                      return ($stateParams.id);
                   }
            }
            });
    });
})();

当我点击按钮url改变,但html不改变它仍然是templateUrl从状态状态不是状态/{女仆}。控制台没有错误。

按钮上的ui-sref应该是这样的:

<button ui-sref="status.viewer({maId: gridItem.MAID})" class="btn btn-info">
  <span class="glyphicon glyphicon-search"></span>
</button>

你总是需要插入在你的路由中声明的整个状态名。

编辑:

根据你的评论,没有看到你的整个HTML结构,我猜你在你的状态模板中缺少ui-view指令。如果你使用的是子状态,父状态需要有它才能显示子状态的内容/模板。你可以把status.viewer状态设置成一个独立的状态如果你想让它像现在这样工作的话。但是如果你想把它作为一个子状态,只要在你的status状态中添加这个,子状态的内容就会出现。

<div ui-view></div>

因此,使ui-sref更改并将ui-view添加到您的父状态模板