Я пытаюсь использовать ngForm, связанный с каждой итерацией ngRepeat в моей директиве. Я попытался использовать require: 'form', но он возвращается как неопределенный, также попытался '^ form', но он дает mainForm вне ngRepeat. Есть ли особый способ, например require: 'ngForm', который даст мне контроллер ngForm для первого элемента моей директивы вида? Шаблон директивыAngularJS Как требовать ngForm на том же уровне, что и директива
Родителя вне директивы формы ракурса
... // some other markup
<form name="mainForm">
... // some other markup
// Vertically stacked tabs directive
// Creates left/right cols, left=stacked tabs, right=form associated content using transclude
<pills>
// Pill pane content with title attribute passed up to pills during compile for stacked tabs
<pill ng-repeat="form in formData.documents"
title="{{form.name}}">
// Generated form content for each pill pane
<form-view form="form"
model="formModel"></form-view>
</pill>
</pills>
... // some other markup
</form>
Формы ракурса шаблона директивы
<fieldset ng-form="form.id"> // want reference to this controller using require
<h3 ng-bind="form.name"></h3>
<div ng-repeat="field in form.mapping.fields"
... // bunch of generated fields
</div>
</fieldset>
Формы вида директивы
.directive('formView', [function() {
return {
restrict: 'E',
templateUrl: '/app/components/form-view/formview.html',
scope: {
form: '=',
model: '='
},
require: ['^tabs', '^pills', '^form'], // also tried 'form', '?form', 'ngForm', 'ngform'
link: function($scope, $element, $attrs, ctrls) {
$scope.tabsCtrl = ctrls[0]; // got tabs
$scope.pillsCtrl = ctrls[1]; // got pills
$scope.formCtrl = ctrls[2]; // always undefined or grabs mainForm
}
};
}]);
Спасибо, я рассмотрю реализацию моей собственной директивы ngForm, это отличная идея. Также поможет несколько других функций, которые будут интегрированы в приложение. – mtpultz