Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将按钮绑定到ng repeat内的元素_Javascript_Angularjs_Angularjs Ng Repeat_Unique_Bind - Fatal编程技术网

Javascript 将按钮绑定到ng repeat内的元素

Javascript 将按钮绑定到ng repeat内的元素,javascript,angularjs,angularjs-ng-repeat,unique,bind,Javascript,Angularjs,Angularjs Ng Repeat,Unique,Bind,我正在尝试将ng repeat中的一个按钮绑定到同一repeat中的按钮的唯一元素,这对我来说很难理解,所以我将给出一个代码片段 <li ng-repeat="thing in listOfThings track by $index"> <div ng-model="text"> text < /div> <button ng-click="highlightText()" /> </ li> 虽然不确切,但这是一个想法。问

我正在尝试将ng repeat中的一个按钮绑定到同一repeat中的按钮的唯一元素,这对我来说很难理解,所以我将给出一个代码片段

<li ng-repeat="thing in listOfThings track by $index">
  <div ng-model="text"> text < /div>
  <button ng-click="highlightText()" />
</ li>
虽然不确切,但这是一个想法。问题是当我点击按钮时,它会突出显示物品列表中的所有文本。 注意:假设文本被赋予一个ng类,当布尔值为true时高亮显示,当布尔值为false时不高亮显示,通过按钮进行切换

你知道如何将按钮绑定到一个文本上,这样它就不会突出显示其他所有内容了吗


我试着用谷歌搜索它,它可能是一个重复的问题,但不确定如何搜索这个特定的东西,所以如果它是重复的,请链接答案。

如果我正确理解了您的示例,您的ng类将根据单击事件将该类应用于重复中的所有项目

您需要按列表中的每个元素单独跟踪按钮选择。比如:

HTML:

CSS:

编辑:作者提出了很好的建议,可以通过移动突出显示的函数而不跟踪thing变量上的标志来使其更清晰

HTML:


添加highlightText函数的代码。由于ng repeat创建了新的嵌套的非隔离作用域,所以可能会出现问题,或者您可以让它工作Hello P.Best!欢迎来到SO。我想指出的是,由于ng repeat创建了新的非隔离作用域,所以可以跳过突变。也就是说,您可以将ng class={highlighted:selected}与。。。ng单击=选中=真
<li data-ng-repeat="thing in listOfThings track by $index">
  <div data-ng-model="text" data-ng-class="{ 'highlighted': thing.Selected  }"> < /div>
  <button data-ng-click="highlightText(thing)" />
</li>
$scope.highlightText = function(thing){
    thing.Selected = true;
}
.highlighted{
   background-color: yellow;
}
<li data-ng-repeat="thing in listOfThings track by $index">
  <div data-ng-model="text" data-ng-class="{ 'highlighted': selected  }"> < /div>
  <button data-ng-click="selected = true" />
</li>