Добрый день. Попытаюсь сформулировать вопрос.
Есть
Multi-Step Form (думаю, многие её видели). Я хотел бы перевести её в директиву, а еще, скорей всего, каждое отдельное поле в директиву. А что делать с $stateProvider в этом случае? Его же не засунешь в директиву - он остается в конфиге модуля. Т.е. остается примерно так
.state('form', {
url: '/form',
template: '<form></form>',
})
.state('form.profile', {
url: '/profile',
template: '<form-profile></form-profile>'
})
.state('form.interests', {
url: '/interests',
template: '<form-interests></form-interests>'
})
.state('form.payment', {
url: '/payment',
template: '<form-payment></form-payment>'
});
и делаю директиву (главную, где есть ui-view)
angular
.module('app.core')
.directive('form', form);
function form() {
var directive = {
link: link,
template: ' <form id="signup-form" ng-submit="processForm()">
<div id="form-views" ui-view></div>
</form>',
restrict: 'EA'
};
return directive;
function link(scope, element, attrs) {
scope.formData = {}
}
}
и делаю директивы полей
angular
.module('app.core')
.directive('formProfile', formProfile);
function formProfile() {
var directive = {
link: link,
require: '^form'
templateUrl: 'views/form-profile.html">
restrict: 'EA'
};
return directive;
function link(scope, element, attrs) {
}
}
Ну и остальные поля. Правильно ли я понимаю, что если я в каждой директиве делаю
require: '^предыдущая директива'
, то контроллер наследуется и я в результате "соберу" форму?
В общем, вопроса пока два (если кто-то что-то понял)
1) Как, в случае с директивой, поступать с ui-router, можно ли куда то засунуть stateProvider
2) Наследуется ли контроллер (link) в директиве, чтобы не терялась форма?