当前位置: 首页 > 知识库问答 >
问题:

动态加载项的ng模型

晏和风
2023-03-14

我有一个包含一些项目(例如汽车)的列表,它是动态的,因此没有固定的长度。当我加载此列表时,它看起来像这样:

itemList = [
    { id: 0, name: 'bmw' },
    { id: 1, name: 'audi' },
    { id: 3, name: 'vw' },
    { id: 4, name: 'subaru' },
    { id: 5, name: 'mercedes' }
];

之后,我在ng-repeat循环中循环此列表并创建一些复选框,以便我可以选择项目:

<div class="item" ng-repeat="item in itemList">
    <input type="checkbox">
    <label>{{item.name}}</label>
</div>

现在我有一个用户对象。这个对象里面有一个数组“cars”,我想在其中推送所有选定的汽车,如果我取消选择它,请将其删除。我的对象看起来像这样:

userObj = [
    { 
      name: 'user1', 
      cars: [] 
    }
];

所以当我选择一辆汽车时,它应该被推送到我的用户对象中的数组汽车中,如果我取消选择它,它也应该被删除。我知道我必须用ng-change来做这件事,这不是我真正的问题。我的问题是复选框的ng-model。我不知道如何做到最好。我不能为每个列表使用相同的ng-model,这很合乎逻辑。最好的方法是什么?在网上没有找到任何解决方案。

共有1个答案

南门洋
2023-03-14

您可以更新特定用户的汽车数组,在每个项目itemList复选框更改,如下所示。

利润

<div class="item" ng-repeat="item in itemList">
    <input type="checkbox" ng-model="item.checked" ng-change="itemChange(user)">
    <label>{{item.name}}</label>
</div>

代码

$scope.itemChange = function(user){
   var selectedCarsIds = $scope.itemList.filter((i) => i.checked).map(item => item.id)
   //update cars array for specific user
   user.cars = selectedCarsIds;
}
 类似资料:
  • 问题内容: 对于我正在编写的指令的需要,我必须动态构造ng-options表达式。这是我尝试过的。 在我的指令中: 在我的html模板中: 这将导致ng-options使用正确的表达式“列表中l的l.name”,但不会显示选项。 拜托,有什么主意吗? 问题答案: 更改您的代码,使其看起来像这样(使用javascript来选择您的媒体资源):

  • 问题内容: 我正在尝试动态加载我创建的模块。 现在这可以正常工作: 但是,如果我通过动态导入尝试相同的操作,它将失败。 提供的错误是: 有什么想法吗? 编辑:使用完整范围时(它的工作原理?): 这不会引发任何错误,但是,它不会加载索引模块,而是会加载“ neoform”模块。 “ struct”的结果是: 另外,作为附带的问题,我该如何在动态加载的模块中实例化一个类?(假设所有模块都包含一个通用的

  • 问题内容: 我正在尝试从对象数组生成一组复选框。我的目标是使复选框动态地将其ng模型映射到将要提交到数组中的新对象的属性。 我的想法是 在此JSFiddle上可以看到,这不起作用: http://jsfiddle.net/GreenGeorge/NKjXB/2/ 有人可以帮忙吗? 问题答案: 这应该给您想要的结果: 这是工作正常的小伙伴:http ://plnkr.co/edit/ALHQtkji

  • 问题内容: 在Java中,我可以向类路径中动态添加内容并加载类(“动态”的意思是无需重新启动应用程序)。是否有一个已知的框架/库可以处理模块的动态加载/卸载而无需重新启动? 通常的设置是负载平衡器,应用程序的多个实例以及逐步部署和重新启动新版本(尤其是对于Web应用程序)。我正在寻找其他东西- 具有多个服务/插件的应用程序,可能是单实例桌面应用程序,在其中禁用单个服务很便宜,但是关闭或重新启动完整

  • 本文向大家介绍angular之ng-template模板加载,包括了angular之ng-template模板加载的使用技巧和注意事项,需要的朋友参考一下 本文介绍了angular之ng-template模板加载,分享给大家,具体如下: html5中的template template标签的含义:HTML <template>元素是一种用于保存客户端内容的机制,该内容在页面加载时是不可见的,但可以

  • 问题内容: 我正在尝试创建一个自定义组件,该组件使用从内而外的指令使用动态ng-model。 例如,我可以调用不同的组件,例如: 使用如下指令: 想法是,如果模型发生更改,则指令中的文本框将发生更改,反之亦然。 事实是,我尝试了不同的方法,但都没有成功,您可以在此处检查以下方法之一:http : //plnkr.co/edit/7MzDJsP8ZJ59nASjz31g?p=preview在此示例中