Привет всем, мне нужно создать некоторые динамические формы, чтобы пользователи могли настраивать фиды к их спецификациям.
Я использовал ng-repeat, чтобы сделать следующее:
для каждого свойства в фиде есть метка, и создается текстовое поле ввода. Разметка:
<tabset>
<tab ng-repeat="feed in feeds" heading="{{feed.heading}}">
<form role="form">
<div class="row" ng-repeat="property in feed.properties">
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">
<span>{{property.name}}</span>
</span>
<input type="text" class="form-control" value="{{property.value}}">
</div>
</div>
</div>
</form>
</tab></tabset>
Это отлично работает с поддержкой json, но мне интересно, какой приемлемый способ захвата данных для такого использования, очевидно, я не буду знать, сколько фидов или свойств у каждого канала есть, поэтому я полагаю, что мне нужно привяжите это к массиву в некотором роде.
Вопрос в том, как?
использовать ng-model
<input type="text" class="form-control" ng-model="property.value">
Таким образом текстовое поле привязано к property.value
. угловой автоматически обновляет property.value
при изменении текста в текстовом поле. Вы можете использовать его в своей JS так же, как и любую другую переменную. Что красота угловатая.
ng-repeat
работает почти так же, как вы ожидаете, что «для каждого» на любом языке будет работать. Добавьте<span>{{property.value}}</span>
чтобы увидеть его в действии