【问题标题】:How to use $.each conditionally in angularjs如何在 angularjs 中有条件地使用 $.each
【发布时间】:2017-05-09 03:51:24
【问题描述】:

我有一个数组 vm.settings.tab_permissions,如果角色等于 vm.heading,我必须用 vm.data 替换它,如果不是角色,我想将 vm.data 推送到 vm.settings.tab 但使用我的代码重复被插入,我知道我写错了。谁能帮助我。谢谢。

 $.each(vm.settings.tab_permissions,function(i, v){
 if(v.role === vm.heading){
              v = vm.data;
            }else {
             vm.settings.tab_permissions.push(vm.data);
            }
          });

【问题讨论】:

  • 在角度不要使用$.each 使用angular.foreach
  • 嗨 viplock,好的,但你能根据上述条件更改我的代码吗?
  • 检查答案!

标签: angularjs node.js each


【解决方案1】:
angular.forEach(vm.settings.tab_permissions, function (v, i) {
            if(v.role === vm.heading){
               v = vm.data;
            }else {
               vm.settings.tab_permissions.push(vm.data);
            }
        });

【讨论】:

    【解决方案2】:

    在角度使用angular.foreachlike-

     angular.forEach(vm.settings.tab_permissions,function(value, key){
         if(value.role === vm.heading){
              value = vm.data;
            }else {
             vm.settings.tab_permissions.push(vm.data);
            }
          });
    

    查看函数中参数变化的顺序,先保值,后保键

    【讨论】:

    • 我的问题是我有 vm。标题为“代理”,位于 vm.settings.tab_permissions 中的第 4 位,意味着在推动 Ahents 时?这是重复的情况。
    • “当 Ahents 被推动时”是什么意思?请举例说明
    • 实际上代理数据应该替换为现有的,在检查代理条件的过程中,由于循环进入匹配代理的第4次迭代,因此推送记录。
    • 首先永远不要更新用于迭代的同一个数组,这里是vm.settings.tab_permissions。迭代时不要在数组中添加或删除任何东西。为了使用,在迭代时将数据添加到其他数组中,如果需要,在 for each 之后将其添加到主数组中
    猜你喜欢
    • 1970-01-01
    • 2016-09-18
    • 2012-11-28
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 2018-04-06
    • 2016-06-17
    • 2015-07-01
    相关资源
    最近更新 更多