使用 ng-options 和 ng-model 选择 ng-repeat 内部

在开始之前,我想指出这是在 ServiceNow Orlando 版本中开发的,它使用 AngularJS 1.6.10

我陷入了一段棘手的代码,无法正确执行,我正在使用 ng-repeat 构建硬件设备目录,在本例中是笔记本电脑,我们添加了一个按钮,可以快速让人们将设备添加到购物车,我们现在想要添加一个数量字段,以便可以同时添加多个设备,我得到了它,但 AngularJS 在开头添加了一个空单元格,我需要将其设置为默认值1,我确实做到了这一点,但它破坏了购物车体验,因为无论选择多少数量,添加到购物车的每个商品都是 1。

这是大部分 html 代码,其中还包括构建硬件设备的 ng-repeat,我正在使用每个人似乎都推荐的 ng-options,在 Stack Overflow 上阅读了很多内容。

问题是 ng-model,因为它被设置为 $scope.items[0] 它永远不会更新,我一直在研究 getterSetter 但目前非常难以理解,无法让它工作。

控制器:

$scope.items = [{
    id: 1,
    label: '1'
}, {
    id: 2,
    label: '2'
}, {
    id: 3,
    label: '3'
}];

$scope.selected = $scope.items[0];

一切看起来像什么:

因此,我在高性能 PC 笔记本电脑上选择了“3”,但如果您查看右侧的控制台日志,您可以看到添加的值是 1。

显示添加到购物车的图片

真的很遗憾,我对空单元格很满意,但这正是客户想要的,我知道我可以用一些文本更新空单元格,但他们真的希望它默认为 1。

任何建议,我将不胜感激,

无聊的熊猫


九州编程
浏览 42回答 1
1回答

倚天杖

用 ng-show 替换 ng-if 解决了我的问题,尝试解决这个问题花了几天时间,还开发了一个带有数字增量的更简单的解决方案代码在这里:<input type="number" value="1" min="1" max="20" step="1" ng-model="items_increment" title="Quantity" ng-show="item.u_show_quantity_button == 'true'"/>$scope.items_increment = 1;希望它可以帮助另一个人。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5