【发布时间】:2015-09-05 02:30:43
【问题描述】:
我正在为 Angular 应用程序使用 UI-Router。我似乎找不到我做错了什么。我也没有收到任何错误,这让我很难调试。也遵循了文档,我正在遵循他们的步骤。当我不将它嵌套在子视图中时,我的控制器功能正在工作。有人可以指导我做错什么吗?提前致谢!
APP.JS
'use strict';
var app = angular.module('americasTopStatesApp', ['ui.router', 'ngAutocomplete']);
app.run(function($state, $rootScope) {
$rootScope.$state = $state;
});
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider
.otherwise('/home');
$stateProvider
//HOME
.state('home', {
url: '/home',
templateUrl: './app/views/homeTmpl.html',
controller: 'homeCtrl'
})
//RANKINGS
.state("rankings", {
url: "/rankings",
templateUrl: './app/views/rankingsTmpl.html',
controller: 'rankingsCtrl'
})
// RANKINGS CHILDREN
.state('rankings.data', {
url: '/data',
templateUrl: './app/views/rankingsDataTmpl.html',
controller: 'rankingsCtrl',
parent: 'rankings'
})
});
CONTROLLER排名Ctrl
'use strict';
app.controller('rankingsCtrl', function($scope, rankingsService) { //Start Controller
// ***********************************************
// *************** GET LATEST DATA ***************
// ***********************************************
$scope.getAllStateRankings = function() {
rankingsService.getStateRankingsData().then(function(data) {
$scope.showRankings = true;
// console.log("Contoller Data", data);
$scope.states = data;
});
};
$scope.showRankings = false;
$scope.getAllStateRankings();
}); //End Controller
父视图排名Tmpl.html
<div class="rankings-heading">
<h1>America's Top States</h1>
<button ng-click="getAllStateRankings()">
<a ui-sref="rankings.data" id="data" class="btn">Data</a>
</button>
</div>
</div ui-view></div>
子视图(嵌套 ui-view)rankingsDataTmpl.html
<div class="rankings-container" ng-show="showRankings">
<div class="panel panel-primary" ng-repeat='state in states'>
<div class="panel-heading">
<h3 class="panel-title">{{state.state}}</h3>
</div>
<div class="panel-body">
Economy: {{state.economy}}<br>
Capital Access: {{state.accessToCapital}}<br>
Business: {{state.business}}<br>
Cost of living: {{state.costOfLiving}}<br>
</div>
</div>
</div>
屏幕截图
【问题讨论】:
-
@m59 我也试过了,但是也没用。
-
@m59 不走运!我也去掉了我所有的 ng-show 和 ng-hide 逻辑。
-
当 templateUrl,FWIW 中有错字时,我会遇到这种静默失败。
-
替换为感谢@m59 的解决方案。弄清楚错误是什么。我将ui-view>
并且它起作用了。
标签: javascript angularjs angularjs-directive angularjs-scope angular-ui-router