我刚刚开始在 Angular 中进行实验,并且对如何最好地使用 ng-repeat 进行绑定感到困惑。我基本上明白了关于 ng-repeat 创建子范围的观点。我的问题更基本:) 对于这样的 html:
<div ng-controller="swatchCtrl" class="swatch-panel">
Swatches
<ul>
<li ng-repeat="swatch in swatchArray" class="swatch">
<input
type="radio"
name="swatches"
ng-model="$parent.currentSwatch"
value="{{swatch}}"
>
<label class="swatch-label">
<div class="swatch-color" style="background-color: #{{swatch.hexvalue}};"></div
><span class="swatch-name">{{swatch.colorName}}</span>
</label>
</li>
</ul>
currentSwatch is:
<pre>{{currentSwatch | json}}</pre>
currentSwatchObj is:
<pre>{{currentSwatchObj | json}}</pre>
how do I tell this to fire??
swatchArray is:
<pre>{{swatchArray | json}}</pre>
</div>
和这样的javascript:
function swatchCtrl($scope) {
$scope.swatchArray = [
{colorName:'Red', hexvalue: 'ff0000', selected: 'false'},
{colorName:'Green', hexvalue: '00ff00', selected: 'false'},
{colorName:'Blue', hexvalue: '0000ff', selected: 'false'}
];
$scope.currentSwatch = {};
}
我想要:
a) 当用户单击单选按钮时,我希望它设置 currentSwatch 对象的 colorName 和 hexvalue 属性。现在绑定似乎给了我一个来自数组的字符串化对象。如何观察 currentSwatch 的返回,以便我可以将其解析回可用对象?很简单,我知道,但我错过了什么?
b)当用户单击单选按钮时,我想我希望将原始数组中相应“选定”键的值设置为“真”。反之亦然取消选中。假设在调色板中一次只能选择一个样本。(理论上我希望以后能够遍历数组,假设不同的键和值有时可能不是唯一的。)
使用 jquery 方法,这种东西非常简单,但我想学习惯用的角度方式。提前感谢您的帮助。