Angular ui-router相当于重载$ route?

时间:2014-05-01 07:23:52

标签: angularjs angular-ui-router

我正在使用角度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;
});

2 个答案:

答案 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
    }];
});