Вы можете создать директиву для аккордеона, а затем динамически загрузить контент на основе переменной области. Возможно, вам придется создавать отдельные файлы HTML для желаемого контента. Вот для этого plunkr.
Директива
angular.module('starter.directives', [])
.directive("dynamicAccordion", function() {
return {
restrict:"A/E",
scope: {
content: "@"
},
template:"<div ng-include=getContent()></div>",
link: function(scope) {
scope.getContent = function() {
return scope.content;
},
scope.toggleContent = function() {
scope.isShow = !scope.isShow;
},
scope.isShow = true;
}
}
});
HTML
РЕДАКТИРОВАТЬ
Это plunkr выставляет модель из каждой формы к контроллеру.
Директива
angular.module('starter.directives', [])
.directive("dynamicAccordion", function() {
return {
restrict:"A/E",
scope: {
content: "@",
model: "="
},
template:"<div ng-include=getContent()></div>",
link: function(scope) {
scope.getContent = function() {
return scope.content;
},
scope.toggleContent = function() {
scope.isShow = !scope.isShow;
},
scope.isShow = true;
}
}
});
HTML
<form>
{{ form | json }}
<dynamic-accordion content="accordionbutton.html" model="model1"></dynamic-accordion>
<dynamic-accordion content="accordionform.html" model="model2"></dynamic-accordion>
</form>
<button ng-click="checkModel()">Check Model</button>
Контроллер
$scope.model1 = {
text: "Default - 1",
number: 0
};
$scope.model2 = {
text: "Default - 2",
number: 0
};
$scope.checkModel = function() {
console.log("Text_1 "+$scope.model1.text +" Number_1 "+$scope.model1.number);
console.log("Text_2 "+$scope.model2.text +" Number_2 "+$scope.model2.number);
}
Спасибо за Ваш ответ. Но я пытаюсь обернуть форму вне adn, имея ng-модель внутри 'accordionbutton' и' accordionform html', как в этом новом plunkr здесь [ссылка] (http://plnkr.co/edit/P5neLRtua9Ldf0aReeu4?p=preview) , но кажется, что значение ng-модели не доступно снаружи. – vincentsty
Вы не можете напрямую разоблачить модель, но это можно сделать с помощью двухсторонней привязки. Я создал еще один plunkr поверх нового plunkr, который вы создали. http://plnkr.co/edit/veC78rspiYslgqfiA5D2?p=preview. См. Мои изменения в ответе. –
@ vincentsty Вы получили то, что искали? Или вы ищете что-то еще? –