我有一個帶有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) –