【发布时间】:2025-11-24 11:15:02
【问题描述】:
我的用户可以在“主题”中输入标签和颜色。
<form>
<label>Name<input class="additional-input" type="text" ng-model="newTheme.name"></label>
<label>Color<input class="additional-input" type="color" ng-model="newTheme.color" value="#FFFFFF"></label>
<button class="hot-button" ng-click="addTheme()">+ Add Theme</button>
</form>
然后我希望能够将颜色视为已输入颜色的标签列表中的默认值。现在这些标题下的颜色选择器具有默认的黑色 - 有没有办法将默认设置为存储在数据中的颜色?以下是来自控制器的虚拟数据:
var i;
$scope.itemsList = {
items1: [],
items2: [],
items3: []
};
for (i = 0; i <= 5; i += 1) {
$scope.itemsList.items1.push({'Id': i, 'Label': 'Item A_' + i, "Color": '#CE93D8'});
}
for (i = 0; i <= 5; i += 1) {
$scope.itemsList.items2.push({'Id': i, 'Label': 'Item B_' + i, "Color": '#CE93D8'});
}
for (i = 0; i <= 5; i += 1) {
$scope.itemsList.items3.push({'Id': i, 'Label': 'Item C_' + i, "Color": '#CE93D8'});
}
以及显示框的 html(我正在使用 ng-sortable 使它们拖放):
<div id="horizontal-container">
<div class="sortable-row" as-sortable="sortableCloneOptions" data-ng-model="itemsList.items1">
<div id="big-item" ng-repeat="item in itemsList.items1" as-sortable-item>
<div as-sortable-item-handle>{{item.Label}}</div>
<div> <input type="color" value=item.color> </div>
</div>
</div>
</div>
然后第二个问题是,我想将具有这些标签的另一组这些框的背景颜色设置为与框中的标签一起存储的颜色(在非虚拟数据中,这些都是不同的颜色)。 “bgcolor = item.color”是我的尝试。下面还显示了我尝试过脚本标签,但我认为它不适用于 ng-repeat?当我从双引号中取出 item.color 时,它破坏了整个 div。
<div class="col-sm-2 col-xs-2">
<div class="column">
<div class="columnHeader">
<span class="comp-title">{{client.profile.name}} Comp 1</span>
</div>
<div id="big-item" class="sortable-row" as-sortable="sortableOptions" data-ng-model="itemsList.items3">
<div ng-repeat="item in itemsList.items3" as-sortable-item>
<div id="boxes" as-sortable-item-handle bgcolor= item.color>{{item.Label}}
<script>
document.getElementById("boxes").style.backgroundColor = "item.color"; </script>
</div>
</div>
</div>
</div>
</div>
</div>
我希望当人们更改第一行框中的主题颜色时,这些列表中所有这些主题框的背景颜色都会改变 - 但这可能是我会遇到的数据绑定问题用真实数据来解决。 (底部列表的真实数据将包含一组有序标签/主题,这些标签/主题引用回颜色的第一个列表)。谢谢!
【问题讨论】:
-
我尝试了 [link] (*.com/questions/33246583/…) 但将第二个列表中的 ng-repeat div 更改为似乎什么也没做。懒得阅读你所有的代码检查这个关于如何实现用户选择的颜色的一般想法plnkr.co/edit/vDs6fXxsj1gNntwfQIwk?p=preview啊!那行得通。关于为什么这没有显示数据中的颜色而是仍然默认为黑色的任何见解? 谢谢!
标签: javascript html angularjs-ng-repeat background-color color-picker