我正在使用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'
});`
答案 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>