0

Я довольно новичок в Угловом и очень новичок в использовании ui-router, поэтому я мог бы пропустить что-то очевидное.

Если я сам запустил страницу results.html, все, что от веб-API правильно связано с контроллером, отображается как ожидается.

Когда я начинаю с index.html и нажимаю кнопку, которая вызывает $ state.go(), я перехожу на страницу results.html .. но ни одна из данных с контроллера не появляется. Служба диспетчера & все еще вызывается - потому что я добавляю операторы console.log(), чтобы проверить, что объект, который мне нужен, возвращается после $ state.go(), и это - шаблон просто не регистрирует его.

Вот мой код для моего UI-маршрутизатора и главного контроллера:

// script.js 
var app = angular.module('BN', ['ui.router']); 

// configure our routes 
app.config(function ($locationProvider, $stateProvider, $urlRouterProvider)  { 

    $urlRouterProvider.otherwise(''); 

$stateProvider 

    .state('default',{ 
     url:'/', 
     templateURL:'index.html', 
     controller: 'MainController' 
    }) 

    .state('results', { 
     url:'/results', 
     controller: 'ResultsController', 
       controllerAs: 'vm', 
       templateUrl: 'Results/Results.html' 
    }) 

    .state('instructor', { 
     url:'/api/instructors/:id', 
     templateUrl: 'Instructors/Instructor.html' 
    }); 

$locationProvider.html5Mode(true); 
}); 

app.controller('MainController', MainController); 
function MainController ($state) { 

var vm = this; 

vm.Submit=function(){ 
    $state.go('results');  
}; 
} 

Так Results.html рендеров прекрасно запущенного по себе, но когда переходите к - контроллер называется, но не связаны с html-шаблон.

+0

Где находится контролер Results? – Sajeetharan

+0

находится в файле Results - но в моем файле index.html я включаю его после этого файла script.js. @Sajeetharan <сценарий SRC = "script.js"> <сценарий SRC = "/ Результаты/ResultsController.js"> –

+0

Не могли бы вы создать plunker для этой проблемы? – Sajeetharan

ответ

0

У вас есть файл index.html настроен правильно, но после этого вы неправильно используете ui-router.

В файле index.html, где у вас есть:

<body ui-view> 

это говорит UI-маршрутизатор для загрузки содержимого ваших шаблонов в тело документа, так что ваши шаблоны должны быть просто фрагменты HTML в быть отображены в теге тела. Поэтому вы должны удалять все из результатов. Html до тех пор, пока не останется все:

<div id="headerBar" > 

<div class="form-group" id="headerBar" > 
     <input class="form-control input-lg" type="text" id="inputlg" placeholder="Zipcode" /> 
     <button id="sub" class="btn btn-default btn-lg" type="submit" ng-click="vm.getInstructors()">Find an Instructor!</button> 
</div> 
</div> 


<table> 
       <tr ng-repeat="Instructors in vm.instructors"> 
        <td style="padding-top:5px;"> 
         <div> 
          <nav class="navbar"> 
           <div class="container-fluid"> 



            <form class="navbar-form navbar-left" role="search"> 


             <div class="form-group"> 
              <input type="text" class="form-control" placeholder="Search" name="searchString" > 
             </div> 
             <button type="submit" class="btn btn-default" value="Filter">Search</button> 
            </form> 



           </div><!-- /.container-fluid --> 
          </nav> 
         </div> 

        </td> 
       </tr> 
      </table> 

     <div class="col-md-8"> 


     </div> 

<aside class="sidebar" ui-view="map">MAP</aside> 

Несколько других вещей. У вас есть настройка контроллера на ваших маршрутах, поэтому вам не нужно указывать его в любом месте в результатах. Html. Также вы не сможете перейти к results.html. Вместо этого вы просто переходите к (вашему домену)/результатам.

+0

, поэтому это определенно полезно для лучшей практики и очистки решение. Однако это все еще не устраняет проблему. Я перейду в домен/результаты, и тогда мой контроллер еще не загружается в шаблон. Он вызывается - bc заявления console.log, которые я установил в контроллер, распечатывают. Поэтому я все еще не уверен, что это проблема с тем, как я определяю шаблон, или если мне нужно что-то уточнить в $ state.go() @MikeFeltman –

+0

Когда вы получаете шанс, очистите плункер, чтобы он соответствовал что у вас есть, и я посмотрю. –