如何在我的角度路线中添加一些逻辑?

时间:2014-08-13 10:02:44

标签: javascript angularjs

我需要锁定'case'部分中的一些路由以依赖$ scope变量(有效或无效形式)

var loginForm = angular.module('loginForm',[
  'ngRoute',
  'stepsControllers'
  ]);

loginForm.config(['$routeProvider',
  function($routeProvider) {



    this.returnUrl = function(tempN) {

      switch(tempN) {
        case 1:
          return 'partials/step1.html';
          break;
        case 2:
          return 'partials/step2.html';
          break;
        case 3:
          return 'partials/step3.html';
          break;
        case 4:
          return 'partials/step4.html';
          break;
      }
    };

    $routeProvider.
      when('/step1', {
        templateUrl: this.returnUrl(1),
        controller: 'step1Ctrl'
      }).
      when('/step2', {
        templateUrl: this.returnUrl(2),
        controller: 'step2Ctrl'
      }).
      when('/step3', {
        templateUrl: this.returnUrl(3),
        controller: 'step3Ctrl'
      }).
      when('/step4', {
        templateUrl: this.returnUrl(4),
        controller: 'step4Ctrl'
      }).
      otherwise({
        redirectTo: '/'
      });

  }
]);

我相信我们需要添加一些服务,然后需要将它添加到我的控制器的配置中。但我不明白DI的事情,不明白如何编写代码来发布它?

1 个答案:

答案 0 :(得分:0)

我建议 $routeParams 来整理您的网址

angular.module('myApp', []).
    config(function ($routeProvider, $routeParams) {
        $routeProvider.when('/step/:stepId', {
            templateUrl: 'resources/template/'+$routeParams.stepId+'.html',
            controller : 'step'+$routeParams.stepId+'Ctrl'
        });
    });