在Angular中切换ng模型

时间:2014-12-18 02:57:57

标签: jquery angularjs data-binding angularjs-ng-repeat ng-repeat

我有一个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>

感谢。

2 个答案:

答案 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])相同,那么它应该可以正常工作。