我有一个Angular JS代码,在从数据库请求信息后生成导航列表。在单击特定的li元素后,我希望能够存在与导航关联的文本字段的ng模型。例如,如果我单击列表的第二个元素,我希望文本的ng-model绑定到'data.alt2'。如果我点击第一个元素,我希望ng-model绑定到'data.alt1'。我已经尝试过使用JQuery ID来解决这个问题,但我听说使用Angular有一个更优雅的解决方案。
<ul class="nav nav-pills">
<li role="presentation" class="active" ng-repeat="alts in alternatives" >
<a > {{alts}}</a>
</li>
</ul>
<div class="panel-body" >
<textarea placeholder="Enter name of alternative" ng-model="data.alt1"> </textarea>
</div>
感谢。
答案 0 :(得分:1)
<li role="presentation" class="active" ng-repeat="alts in alternatives" >
<a ng-click="selected($index)"> {{alts}}</a>
</li>
<div class="panel-body" >
<textarea placeholder="Enter name of alternative" ng-model="data.alt{{clicked}}"> </textarea>
</div>
控制器:
$scope.selected = function(index) {
$scope.clicked = (index);
}
那应该有用。 ng-click将传入单击项目的索引到控制器中的选定功能。索引号应存储在$ scope.clicked变量中,该变量将反映在ng-model中。
答案 1 :(得分:0)
您可以将textarea绑定到数组,或者将数据对象用作数组:
<textarea placeholder="Enter name of alternative" ng-model="data[indexClicked]">
</textarea>
如果您的数据与您的数据(alts [i] - &gt; data [i])相同,那么它应该可以正常工作。