2016-04-01 22 views
1

kullanarak dinamik olarak rotaları değiştiriyorum Projemde çok sayıda JSON modeli var ve farklı modellerin kullanıcı eylemlerine bağlı olduğunu göstermem gerekiyor.AngularJS

İşte Açısal yönlendirici kod şudur:

app.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/home.html', 
     controller: 'HomeCtrl' 
     }).when('/doc/:section, { 
     templateUrl: 'views/doc.html', 
     controller: 'DocCtrl' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }]); 

Ve burada DocCtrl.js dosyasıdır:

Temelde benim görünümlerinde section dinamik yüzden gösterebilir farklı modeller yapmak gerekir
app.controller('DocCtrl', ['$scope', '$http', 'JSONModelsService', 
    function ($scope, $http, JSONModelsService) { 

     var formData = {}; 

     $scope.group = {}; 
     $scope.sections = []; 

     JSONModelsService.get([section]) 
      .then(function (response) { 
       console.log(response); 
       $scope.group = response.data.groups[0]; 

       $scope.sections = $scope.group.sections; 
      }); 

    }]); 

. Ancak, nasıl yapabileceğimi kafam karıştı. Birden çok json dosyası ile JSONModels adlı bir klasör var.

cevap

1

Sorunuzu doğru anlıyorsam, kodunuzun [section] bölümünü gerçek bir bölüm tanımlayıcısı ile değiştirmeyi mi planlıyorsunuz?

Bir kullanıcı sizin /doc/:section rotanızı ziyaret ettiğinde, örn. /doc/my-doc kontrol cihazınıza $routeParams servisini enjekte ederek :section bölümüne erişebilirsiniz.

app.controller('DocCtrl', ['$scope', '$http', '$routeParams', 'JSONModelsService', 
    function ($scope, $http, $routeParams, JSONModelsService) { 
    ... 

$routeParams hizmetini kullanarak, rota parametreleri erişebilir. Böylece $routeParams.section adresinden okuyarak :section parametresine kolayca erişebilirsiniz.

Tam örneği (Ben size ulaşmak için çalışıyoruz ne düşündüğünü): https://docs.angularjs.org/tutorial/step_07

: Daha fazla bilgi almak isterseniz

app.controller('DocCtrl', ['$scope', '$http', '$routeParams', 'JSONModelsService', 
function ($scope, $http, $routeParams, JSONModelsService) { 

    var formData = {}; 

    $scope.group = {}; 
    $scope.sections = []; 

    JSONModelsService.get([$routeParams.section]) 
     .then(function (response) { 
      console.log(response); 
      $scope.group = response.data.groups[0]; 

      $scope.sections = $scope.group.sections; 
     }); 

}]); 

, açısal öğretici 7 adımda bakmak