我正在使用角度1.0.8从NgRoute过渡到ui-router。由于我有一些嵌套视图,我不得不重新加载使用ngRoute工作正常的路由。我对ui-router也有同样的问题,是否有一种我可以使用的等效方法呢?
我正在使用ui-router 0.2.10。
编辑:
我创建了一个fiddle来说明我使用ui-router加载基本视图的问题。请求视图,我可以在网络检查器中看到它。我可以理解的是为什么视图没有被注入到模板中。
我在这里缺少什么?
.run(function ($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
});
答案 0 :(得分:0)
您正在寻找reload()
功能:
$state.reload()
http://angular-ui.github.io/ui-router/site/#/api/ui.router.state。$状态
你会把它放在一个像这样的控制器中:
var app angular.module('app', ['ui.router']);
app.controller('ctrl', function ($scope, $state) {
$scope.reload = function(){
$state.reload();
}
});
修改1
这是错误的。
.run(function ($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
});
您只需要将$state
注入要使用它的控制器中。
angular.module('app').controller('Ctrl', ['$scope', '$state', function($scope,$state)
// Use $state here
$state.go('stateName');
{}]);
答案 1 :(得分:0)
你忘了注入ui.router,做到这一点,它工作正常。 https://jsfiddle.net/Christian_Schiffer/wLybswL9/1/
var myapp = angular.module(' myapp',[' ui.bootstrap',' ui.router'])。config(function($ stateProvider) ,$ urlRouterProvider){
$stateProvider.state('one', {
url: '/',
templateUrl: '/one.html',
controller: 'MyCtrl'
})
$urlRouterProvider.otherwise('/');
}).run(function ($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
});
myapp.controller('MyCtrl', function ($scope) {
$scope.templateUrl = '/mobileTemplate.html';
});
myapp.controller('AccordionDemo', function ($scope) {
$scope.groups = [{
title: "Dynamic Group Header - 1",
routePath: "one.html",
number: 1,
current: true
}, {
title: "Dynamic Group Header - 2",
routePath: "two.html",
number: 2,
current: false
}];
});