我有一个带有3个输入的窗体,用户将为颜色插入十六进制值。使用窗体更新对象数组 - AngularJS
我需要接收这些值并更新数组的对象的一个属性。此更新仅用于前端目的,不允许Json访问或服务器正在运行。
Form.html
<form name="colorform" class="row col-md-offset-1" ng-submit="update(name, data)">
<div class="col-md-6">
<div class="form-group">
<label>Color A</label>
<input name="main" ng-model="colors.main" class="form-control">
</div>
<div class="form-group">
<label>Color B</label>
<input name="locker" ng-model="colors.locker" class="form-control">
</div>
<div class="form-group">
<label>Color C</label>
<input name="path" ng-model="colors.path" class="form-control">
</div>
<button type="submit" class="btn btn-primary">
Save
</button>
<a href="#/" class="btn btn-primary">Back</a>
<hr>
</div>
</form>
对象的数组:
$scope.colors = [
{name: "main", color: "white"},
{name: "locker", color: "black"},
{name: "path", color: "yellow"}
];
而且更新功能:
$scope.update = function(name, data) {
for (var i = 0; i < $scope.colors.length; i++) {
if ($scope.colors[i].name == name) {
$scope.colors[i].color = data;
break;
}
}
}
我的意图来更新color
属性。我们的目标是在一个HTML元素,控制器上使用此功能,以反映:
$scope.style = function ($index) {
return {
"height" : "15px",
"width" : "15px",
"border" : "1px solid #CCC",
"background-color": $scope.colors[1].color,
"float": "left"
}
}
而且对HTML显示:
<div ng-style="boardStyle" class="board">
<div ng-repeat="tile in getNumber(tiles) track by $index"
ng-style="style($index)"></div>
</div>
但是......什么也没有发生。我在哪里做错了?
什么是数据,更新函数中的名称? –
我认为这个名字是“名字”,数据是“颜色”。但我认为有一些困惑...... – Atoyansk
是否要更新颜色$ scope/object?这里是没有更新功能的简单解决方案。 [看到这里](https://plnkr.co/edit/m7uHderqtNIQ2MgrW8Ji?p=preview) –