2015-01-29 6 views
2

Я пытаюсь использовать AngularJs с ui.router, но есть проблема.AngularJs: ui.router не загружает контроллер

В этом примере есть три состояния: индекс, шаблон и template.show

$stateProvider 
    .state('/', { 
    url: '', 
    template: '<a ui-sref="template">GoTo Template Index</a>' 
    }) 
    .state('template', { 
    url: 'template', 
    templateUrl: 'template_index.html', 
    controller: 'TemplateCtrl' 
    }) 
    .state('template.show', { 
    url: '/{templateId:[0-9]+}', 
    templateUrl: 'template_show.html', 
    controller: 'TemplateShowCtrl' 
    }) 

Пожалуйста, см plunker: http://plnkr.co/edit/prluQs9vXeJw9IVi2JYW?p=info

Но только две первые государства работают. State "template.show" изменение, загрузка шаблона, но делает не исполняется TemplateShowCtrl и не обновлено ui-view для нового шаблона.

Вы можете увидеть screenshot

ответ

5

Любой ребенок, состояние требует присутствия последующего ui-view директивы в ее родителей, так что она знает, куда вставить HTML. В настоящее время нет ни одного присутствующего в разметке template_index.html.

Он должен вместо этого смотреть что-то похожее на это:

<ul> 
    <li ng-repeat="t in templates"> 
    <a ui-sref="template.show({templateId:t.id})" href='#'> 
     {{t.name}} 
    </a> 
    </li> 
</ul> 
<!-- target element --> 
<ui-view></ui-view> 
+0

Спасибо! Я думал, что контент будет заменен новым шаблоном –

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