javascript - 动态更改 html 标签中 ng-model 的名称

标签 javascript jquery html json angularjs

我想动态更改每个输入标签的 ng-model 名称(在 html 输入标签中)。例如,如果我的 json 文件如下所示:

[{cows: 0, pigs: 14, roosters: 2, horses: 23, goats: 21}]

并且我正在使用 ng-repeat 迭代 json 对象(“items”)的属性,我应该为 ng-model="????"添加什么内容将特定输入与特定对象属性(动物)绑定(bind)?

<div ng-app="myApp" ng-controller="MainCtrl">
    <form class="idea item">
        <div ng-repeat="(key, value) in items[0]">
            <label>{{key}}</label>
            <input type="range" value="{{value}}" min="0" max="4" ng-model="????" />
        </div>
        <input type="submit" ng-click="save()" />
    </form>
</div>

如果我在不使用 ng-repeat 的情况下静态地写出它,输入将如下所示:

<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].cows" />
<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].pigs" />
<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].roosters" />
<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].horses" />
<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0].goats" />

但是,我希望这是动态的,因为我不知道需要什么属性名称。

最佳答案

只需使用关联索引:

<input type="range" value="{{value}}" min="0" max="4" ng-model="items[0][key]" />

换句话说,您始终可以通过关联数组访问变量。以下是等效的:

item[0].pigs
item[0]['pigs']

您可以利用这一点,因为您知道中继器中的 key

关于javascript - 动态更改 html 标签中 ng-model 的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991986/

相关文章:

php - 如何使用按钮发送jquery post请求

html - 如何定位 iframe 中的 div?

html - 为什么元素上的负底部边距会降低该元素父元素的高度?

jquery - 为什么此页面的内容向左/向右移动了几个像素?

javascript - 事件处理程序内的事件处理程序正在成倍增加

javascript - 在 vue.js 中,如何提供需要 js 库的组件?

javascript - 鼠标拖动时的水平自动滚动在 Firefox 的 D3 树中不起作用

javascript - 防止对体内所有元素进行点击操作

javascript - 我无法将它们转换为大写

javascript - axios.put ReactJS