У меня есть директива, в зависимости от данных элементов в ng-repeat
(из базы данных), построить собственный HTML с переключателем корпуса:
app.directive('steps', function($compile){
return {
'restrict': 'A',
'template': '<h3>{{step.name}}</h3><ul ng-repeat="opt in step.opts"><div ng-bind-html-unsafe="extra(opt)"></div></ul>',
'link': function($scope, $element){
$scope.extra = function(opt){
switch ($scope.step.id){
case 1:
return "<div>Some extra information<select>...</select></div>"
case 2:
return "<div><input type='checkbox' ng-model='accept'> Accept terms</div>"
case 3:
return "<div>{{step.title}}<select multiple>...</select></div>"
}
}
}
}
});
код выше работ, но Привязываемое {{step.title}}
внутри функции не Работа. Я попробовал $compile(html)($scope)
, но он дал мне Error: 10 $digest() iterations reached. Aborting!
. Как я должен заниматься этим?
Я не думаю, что это правильный «угловой» способ атаковать вашу проблему. Вместо вызова функции «extra», не было бы яснее иметь более крупный шаблон и использовать «ng-switch» или подобное для изменения отображаемого содержимого? –
Данные пользовательского интерфейса поступают из базы данных, и это полностью зависит от этого. Это мастер формы для селектора «plan combo», и он изменяется от пользователя к пользователю – pocesar