在以下代码中,ng-click不会指定&#39; color&#39;到了<div ng-app>
<div ng-controller="xCtrl">
<div ng-repeat="color in colors" ng-click="selected_color=color" style="cursor:pointer;">{{ $index }} - {{ color }}</div>
<hr>
Selected Color: {{ selected_color }}
</div>
</div>
答案 0 :(得分:3)
确实如此,而不是你的想法。 ngRepeat
创建自己的子范围,因此实际上,每次点击时,您都会在该子范围上创建一个名为selected_color
的新变量并进行设置。
在您的控制器上创建一个方法,然后调用它:
$scope.setColor = function(color) {
$scope.selected_color = color;
}
并使用此:
<div ng-repeat="color in colors" ng-click="setColor(color)" style="cursor:pointer;">{{ $index }} - {{ color }}</div>
更新了小提琴:http://jsfiddle.net/s6vrz184/1/
如果您因某些原因反对使用控制器功能,可以$parent
将selected_color
变量设置为内联,但不建议这样做:
<div ng-repeat="color in colors" ng-click="$parent.selected_color=color" style="cursor:pointer;">{{ $index }} - {{ color }}</div>
$parent
小提琴:http://jsfiddle.net/s6vrz184/2/