2016-05-12 3 views
-1

У меня есть группа радиостанций с вариантом «Да/Нет». После выбора «Да» появляется контейнер с текстом. Я хочу, чтобы свиток прокручивался до нового контейнера.Угловой: прокрутите до контейнера после ng-if

HTML:

<li ng-repeat="q in vm.model.questions"> 
    <ng-form name="myForm"> 
     <md-radio-group ng-model="q.answer" layout="row" required class='radio_group'> 
      <md-radio-button ng-value="true" aria-label="Yes">Yes</md-radio-button> 
      <md-radio-button ng-value="false" aria-label="No">No</md-radio-button> 
     </md-radio-group> 
     <md-input-container flex ng-if="vm.blockRequired(q)"> 
      <label>{{'q.text'}}</label> 
     </md-input-container> 
    </ng-form> 
</li> 

контроллер:

function blockRequired(question) { 
     return question.answer === true; 
    } 

ответ

0

Убедитесь, что вы инъекционного $ место и $ anchorScroll в контроллер, а затем в вашей функции используйте что-то вроде:

$location.hash(id); 
$anchorScroll(); 

Где id представляет идентификатор элемента, который вы хотите прокрутить. См.: https://docs.angularjs.org/api/ng/service/ $ anchorScroll для получения дополнительной информации.

+0

Но функция blockRequired вызывается для всех объектов в ng-repeat. Мне нужно, когда вы выберете «Да» в определенном блоке, чтобы открыть контейнер с текстом и прокрутите его до этого контейнера –

+0

Затем вам нужно использовать ng-click на кнопке yes или ngChange в группе радиостанций и ответить, когда нажата кнопка «Да» , Вы не разместили достаточно подробностей или кода, чтобы получить более полезный ответ. –

Смежные вопросы