1

我的路由器有以下代码:

.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) {

  $stateProvider
    .state('main', {
      url: '/',
      templateUrl: 'templates/main.html',
      controller: 'MainCtrl'
    })
    .state('login', {
      url: '/login',
      templateUrl: 'templates/login.html',
    })
    .state('signup', {
      url: '/signup',
      templateUrl: 'templates/signup.html',
      controller: 'SignupCtrl'
    })
    .state('userEdit', {
      url: '/user/edit',
      templateUrl: 'templates/user/edit.html',
      controller: 'UserEditCtrl'
    })
    .state('workouts', {
      url: '/workouts',
      templateUrl: 'templates/workouts/index.html',
      controller: 'WorkoutsCtrl'
    })
    .state('workouts.show', {
      url: '/:id',
      templateUrl: 'show.html',
      controller: 'WorkoutCtrl',
      onEnter: function() {
        console.log('this is stupid');
      }
    })

    $urlRouterProvider.otherwise('/');

}])

我的问题是锻炼.show 状态。我有这个链接:

<div class="" ng-repeat="workout in workouts track by workout._id">
  <hr>
  <a ui-sref="workouts.show({id: workout._id})">{{ workout.shortURI }}</a>
  <p>{{ workout.description }}</p>
  <ul class="exercise-list">
    <li ng-repeat="exercise in workout.exercises">{{ exercise }}</li>
  </ul>
  <hr>
</div>

当我单击链接时ui-sref"workouts.show({id: workout._id})",url 更改为正确的格式,并动态添加 id,但视图未加载。它只是停留在同一页面上。

我已经看到了其他几个类似的问题,但是没有一个被接受的解决方案对我有用,而且我现在在这方面花了太长时间。

提前感谢您的帮助!

4

1 回答 1

0

我有类似的问题。您的“锻炼”状态必须有一个 ui-view,这样您的“workouts.show”才会呈现为一个孩子。希望这可以帮助。

于 2016-10-17T08:54:10.273 回答