【发布时间】:2015-05-04 18:13:14
【问题描述】:
我有一个数据模型,默认情况下我给第一个股票一个选择的状态为真。
现在,当用户单击另一个项目时,我需要有效地取消选择所有其他项目并将所单击的项目的选定值设置为 true:
<li class="ticker-li"
ng-repeat="ticker in tickers"
ng-hide="ticker.removed"
ng-class="{'selected':ticker.selected}"
ng-mouseleave="hideTickerOptions()">
<div class="ticker"
ng-click="unselectAll(); ticker.selected = !ticker.selected;
selectTicker(ticker);">
{{ticker.ticker}}
</div>
</li>
在这里尝试了forEach 函数,但出现错误[object Array] is not a function:
var vs = $scope;
vs.unselectAll = function() {
vs.tickers.forEach(vs.tickers, function(ticker) {
ticker.selected = false;
});
};
常规的 for 循环可以工作,但将所有选定的值切换为 false 是否有效?
for (var i = 0; i < vs.tickers.length; i++) {
vs.tickers[i].selected = false;
}
我的想法是运行这个 unselectAll 函数来取消选择所有内容,然后在标记中选择当前项目的下一个代码:
<div class="ticker"
ng-click="unselectAll(); ticker.selected = !ticker.selected;
selectTicker(ticker);">
{{ticker.ticker}}
</div>
【问题讨论】:
标签: javascript angularjs angularjs-ng-repeat angularjs-ng-model