2016-08-11 2 views
1
$routeProvider 

      .when('/accordion', {(need to get the name from json) 

     templateUrl: 'Samples/accordion.html',(need to get the urlfrom json) 
controller: "AccordionCtrl", 

      }) 

Как хранить имя и шаблон URL в json и как получить имя и шаблон URL из jsonКак я могу хранить и использовать данные JSon внутри поставщика маршрута

+0

означает, что у вас есть данные json, и вам нужно передать эти данные в routereprovider, чтобы сделать его динамичным? Вы чувствовали то же самое? –

+0

Да. Это я ожидаю. Не могли бы вы направить меня? –

+0

Я думаю, что служба - лучший способ, если хотите, я могу опубликовать код. –

ответ

1

Пожалуйста, проверьте ниже код, который будет принимать вход в templates.json файл, и это поможет создать динамические маршруты

'use strict'; 
var app = angular.module('app', ['ngRoute']); 

var $routeProviderReference; 
var currentRoute; 
app.config(function($routeProvider){ 
    $routeProviderReference = $routeProvider; 
}); 
app.service('shareData', function(){ 
    app.run(['$route', '$http', '$rootScope', function($route, $http, $rootScope){ 
    $http.get("templates.json").success(function(data){ 
     var loop = 0, currentRoute; 
     for(loop = 0; loop < data.pages.length; loop++){ 
      currentRoute = data.pages[loop]; 
      var routeName = "/" + currentRoute.name; 
      $routeProviderReference.when(routeName, { 
       templateUrl: currentRoute.tempUrls, 
       controller : currentRoute.controller, 
       resolve: { 
        param: function() 
        { 
         return currentRoute.resolve; 
        } 
       } 
      }); 
     } 
      $route.reload(); 
    }); 
    }]); 
    app.controller(currentRoute.controller, function($scope){ 
     $scope.pageClass = 'page-' + currentRoute.name; 
    }); 
}); 

также найти JSon файл демо, как показано ниже:

{ 
    "pages" : [ 
    { 
    "name"  : "home", 
    "tempUrls" : "views/home", 
    "controller" : "HomeController" 
    }, 
    { 
     "name"  : "about", 
     "tempUrls" : "views/about", 
     "controller" : "AboutController" 
    }, 
    { 
     "name"  : "contact", 
     "tempUrls" : "views/contact", 
     "controller" : "ContactController" 
    } 
    ] 
} 

Надеюсь, это поможет вам.!

+0

Благодарим за предложение. –

 Смежные вопросы

  • Нет связанных вопросов^_^