#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»