var app = angular.module('learning', ['ui.router','ngResource']);

app.controller('mainCOntroller',['$scope',function($scope){
  
}]);

app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){
  $urlRouterProvider.otherwise('/');
  
  $stateProvider.
    state('topics',{
      url: '/topic/:topicId?subtopicId',
      views: {
        '' : {
          templateUrl: 'topics.html',
          controller: 'topicController'
        },
        'subtopics@topics': {
          templateUrl: 'subtopics.html'
        },
        'data@topics': {
          templateUrl: 'data.html'
        }
      }
    });
}]);

app.controller('topicController', ['$scope','TopicProvider',function($scope,TopicProvider){
  
  var t = TopicProvider.get(function(tp){
    $scope.t = tp.topics;
    $scope.st = tp.subtopics;
    $scope.d = tp.data;
  });
}]);

app.factory('TopicProvider', ['$resource', function($resource){
  return $resource('topics.json',{}, {
    get: {
      method: 'GET'
    }
  });
}]);
<!DOCTYPE html>
<html ng-app="learning">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.8/angular.js" data-semver="1.4.8"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-resource.js"></script>
    <script src="http://angular-ui.github.io/ui-router/release/angular-ui-router.js"></script>
    
  </head>

  <body ng-controller="mainCOntroller">
    <a ui-sref="topics({topicId:1})">Click here for learning topics</a>
    <div ui-view></div>
    <script src="app.js"></script>
  </body>

</html>
/* Put your css in here */

{
  "topics": [
    {"topicId": 1, "name": "Topic 1"},
    {"topicId": 2, "name": "Topic 2"},
    {"topicId": 3, "name": "Topic 3"}
    ],
  "subtopics": [
    {"topicId": 1, "name": "subtopic 1", "subtopicId": 1},
    {"topicId": 1, "name": "subtopic 2", "subtopicId": 2},
    {"topicId": 1, "name": "subtopic 3", "subtopicId": 3}
    ],
  "data": "Default data for topic1/subtopic 1"
}
<pre> Topics<pre>
  <ul>
    <li ng-repeat="s in t">
      <a ui-sref="topics({topicId: s.topicId})"> {{s.name}}</a>
    </li>
  </ul>
  
  <div ui-view="subtopics"></div>
  
  <div ui-view="data"></div>
<pre> Sub topics<pre>
  <ul>
    <li ng-repeat="s in st">
      <a ui-sref="topics({topicId: s.topicId, subtopicId: s.subtopicId})"> {{s.name}}</a>
    </li>
  </ul>
<pre> Data</pre>
{{d}}