0

我正在建造一辆购物车。例如,每个产品都有“插件”

  • 尺寸:大
  • 调料:无沙拉酱
  • 饮料:可乐

这些“插件”来自数据库。并作为对象从 API 返回。

对象看起来像这样: object cat_addons (addon_group) -object (addon) -object - etc object item addons (addon_group) -object (addon) -object - etc

现在我正在制作“表格”,它显示了选择框和东西以及一个“添加”按钮。现在,当用户单击“确定/添加”时,我想要所有选定的值,以便我可以进一步处理它......但现在我对此一无所知,因为 ng-model 必须是可变的,因为它是在重复中创建的。

所以我正在寻找一个选项来从(多)ng-repeat填充表单中获取所有选定的值我该怎么做?

看法:

<form ng-submit="addItemToCart()">
    <!-- ADDONS -->
    <!-- CAT ADDONS -->
    <div ng-if="cat_addons">
        <div ng-repeat="(k, addon_group) in cat_addons">
            {{addon_group.addon_group_name}}
            <!-- SINGLE OPTION-->
            <div ng-if="addon_group.addon_option_type == 'single'">
            <span>
                <select ng-options="addon.addon_name as addon.addon_id for addon in addon_group.items">
                    <!-- SHOWS NOTHING? -->
                </select>
            </span>
            </div>
            <!-- SINGLE OPTION -->

            <!-- MULTI OPTION-->
            <div ng-if="addon_group.addon_option_type == 'multi'">
            <span ng-repeat="(k, addons) in addon_group.items">
                <input type="checkbox" name="{{addons.addon_id}}">{{addons.addon_name}}
            </span>
            </div>
            <!-- MULTI OPTION -->
        </div>
    </div>
    <!-- CAT ADDONS -->
    <!-- ADDONS -->
    <button type="submit">ok</button>
</form>

控制器:

        $scope.addItemToCart = function() {
            //i have no clue...
        }
4

1 回答 1

0

一旦你发现它的能力,我理解使用 ng-repeat 的冲动。但是 Angular 还有很多东西可以使诸如此类的问题变得更加简单。您可能想要探索 ngOptions 指令 ( https://docs.angularjs.org/api/ng/directive/ngOptions ) 或选择标签 ( https://docs.angularjs.org/api/ng/directive/select )。

如果这些不是您想要的,请尝试阅读文档以探索 Angular。我相信你会喜欢的。如果您仍然卡住,请对此答案发表评论,我会为您提供帮助。我确实知道如何使用 ng-repeat 来实现你想要的,但它甚至不是做你想做的最好的方法。

于 2015-05-30T16:15:03.000 回答