Javascript 将按钮绑定到ng repeat内的元素
我正在尝试将ng repeat中的一个按钮绑定到同一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> 虽然不确切,但这是一个想法。问
<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>