пользовательский интерфейс-контроллер Angularjs маршрутизатора не загружен

#javascript #angularjs #angular-ui-router

#javascript #angularjs #angular-пользовательский интерфейс-маршрутизатор

Вопрос:

ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ: для тех, кто использует angular material, НИКОГДА не создавайте такой вид

<md-content layout-padding="">
<div ui-view="addOppo"></div>
</md-content>

Вы должны напрямую сделать

<md-content ui-view="addOppo" layout-padding=""> </md-content>

Почему ? Потому что это уничтожит вашу функцию контроллера


Вот моя проблема, AddClientController не загружен, поэтому загружается представление, но не мой контроллер. Название хорошее, я использую его в другой части приложения, и оно работает. Но когда я хочу повторно использовать контроллер addClient где-то еще с его представлением, загружается только представление. Я действительно не понимаю, почему ui-router не загружает его. Заранее спасибо.

   function getStates() {
return [
{
  state: 'dashboard.addOpportunite',
  config: {
    url: '/addOpportunite',
    views: {
      '@': {
        templateUrl: 'app/commerciaux/addOpportunite/addOpportunite.html',
        controller: 'AddOpportuniteController',
        controllerAs: 'vm',
      },
      'addOppo@dashboard.addOpportunite': {
        templateUrl: 'app/clients/add/addClient.html',
        controller: 'AddClientController',
        controllerAs: 'vm2',
      }
    },
    title: 'Ajout Opportunite',
    ncyBreadcrumb: {
      label: 'Ajout Opportunite'
    }
  }
}
];
 

}

«Почему вы говорите, что контроллер не загружен? Откуда вы это знаете? » У меня есть форма в addClient.html и какая-нибудь консоль.журнал, который не отображается.

редактировать, у меня была часть addOpportunite.html :

   <md-sidenav class="md-sidenav-right" md-component-id="right" md-whiteframe="4">
    <md-toolbar class="md-theme-indigo">
      <h1 class="md-toolbar-tools">Sidenav Right</h1>
    </md-toolbar>
    <md-content layout-padding="">
    <div ui-view="addOppo"></div>
      <md-button ng-click="vm.closeRightMenu()" class="md-primary">
        Close Sidenav Right
      </md-button>
    </md-content>
  </md-sidenav>
 

Я, наконец, обнаружил, что мой контроллер был вызван, но основная проблема сейчас заключается в том, что 2 контроллера используют одну и ту же именованную функцию, поэтому дочерний контроллер просмотра вызывает не его функцию, а родительскую. (например: у меня function activate(){} //in all my controllers последний вопрос: каков наилучший способ реализации функции, чтобы четко отличаться от родительского контроллерафункция? Переименовать ? контроллер Как? На самом деле я основал свой разработчик на hotowel Джона папы, но я действительно не вижу в его руководстве по стилю советов по моему вопросу. Где я могу найти другое хорошее руководство по стилю для этого случая?

Комментарии:

1. Вы уверены , что придерживаетесь правильного мнения ? Почему вы говорите , что контроллер не загружен ? Откуда ты это знаешь ?

2. Не могли бы вы поделиться содержанием app/commerciaux/addOpportunite/addOpportunite.html .. а также, может быть, поделитесь большей частью вашего кода .. index.html

3. «Вы уверены , что придерживаетесь правильной точки зрения ?» Представление загружено, я вижу свой addClient.html в моем «ui-view=addOppo»