ui-router状态恢复为父级,ui-view被清除...为什么?

时间:2015-12-09 00:07:48

标签: angular-ui-router

我正在使用ui-router在AngularJS中实现标签。问题是,一旦我点击任何创建的链接,状态暂时改变(如url中所示)以及ui-view填充了一小段时间,然后消失。没有与ui-view相关联的样式。有任何想法吗...?

问题在于单击ReportParent视图(父级)上的链接。

控制器:

function ReportParentController($scope, $http, $q, $interval, ReportParentService, $stateParams, $state) {
    var vm = this;
    vm.dataArray = [];
    vm.CustomerID = $stateParams.CustomerID;

    vm.TabList = [];    

    ReportParentService.getReportList(vm.CustomerID).then(function (response) {
        vm.TabData = response;        
        updateUrlValue(vm.TabData);
        createTabList(vm.TabData);
    });

    function updateUrlValue(data) {
        for (CurrentTabItem = 0; CurrentTabItem < data.length; CurrentTabItem++) {
            data[CurrentTabItem].Url = "details.reportParent." + data[CurrentTabItem].NameNoSpaces + "Report";
        }
    }

    function createTabList(data) {
        for (CurrentTabItem = 0; CurrentTabItem < data.length; CurrentTabItem++) {
            vm.TabList.push({ id: CurrentTabItem, Name: data[CurrentTabItem].Name, NameNoSpaces: data[CurrentTabItem].NameNoSpaces, Url: data[CurrentTabItem].Url });
        }

    }
}

查看:

 <div class="project-tab-menu ui right secondary menu" style="margin-right:1em;">        
        <a ng-repeat="Tab in vm.TabData" ui-sref={{Tab.Url}}>{{Tab.Name}}</a>
    </div>

    <div ui-view ></div>   

路由:

 .state('details.reportParent.WindowsServerReport', {
        url: '/windowsServerReport',
        views: {
            '@details.reportParent': {
                templateUrl: 'Routing/WindowsServerReport',
                controller: 'WindowsServerReportController',
                controllerAs: 'vm',                    
            },
        },
    })
    .state('details.reportParent', {
        url: '/reportParent',
        templateUrl: 'Routing/ResultReportParent',
        controller: 'ReportParentController',
        controllerAs: 'vm'
    });`

1 个答案:

答案 0 :(得分:1)

事实证明,必须指向父母的ui视图,并使用网址搞砸了。用以下

替换details.reportParent路线
.state('details.reportParent', {
        views: {
            'resultsTab@details': {
                templateUrl: 'Routing/ResultReportParent',
                controller: 'ReportParentController',
                controllerAs: 'vm'
            },
        },
    });

另外,请确保在父视图中,您在这种情况下将数据放入ui-view <div ui-view ='resultsTab'></div>