【问题标题】:ng-click to pass multiple arrays?ng-click 传递多个数组?
【发布时间】:2018-02-24 05:40:50
【问题描述】:

我有一个嵌套的 json 对象数组,我能够使用 ng-repeat 在 HTML 中显示按信息分组的内部项目。我在每个内部项目前面都有一个复选框,我正在处理 ng-click 事件并将选定的内部项目传递给控制器​​。但现在我也想在 ng-click 事件中传递 Info id。我可以在 ng-click 中将 Info 数组连接到 Inner items 数组吗

这是json:

[
  {
    "Info": {
      "id": "a1",
      "name": "a1-Info",
      "InnerInfo": [
        {
          "name": "xyz"
        }
      ]
    },
    "InnerItems": [ 
      { "id": "i1" }, 
      { "id": "i2" } 
    ] 
  } 
]

<tr ng-repeat=“I in MyData">
<td> {{I.Info.name}}
      <table>
             <tr><td>
                 <div ng-repeat=“item in I.InnerItems ">
                       <input type="checkbox" name="values" ng-click=“getInfo(I);getInnerItems(item)” ng-true-value="1" ng-false-value="0"/>{{item.name}}
                 </div>
                 </td>
             </tr>
       </table>
  </td>
  </tr>

我需要将两个数组都传递给一个函数,而不是上述方式。有什么建议吗?

【问题讨论】:

  • 您遇到问题的ng-click 的代码在哪里?
  • 不清楚你想做什么,你能显示你的代码/逻辑吗?
  • 是的,请提供代码。
  • 我已经添加了html代码。我可以让 InnerItems 回到我的控制器中,但不是 Info。

标签: javascript angularjs


【解决方案1】:

使用带有ng-click 的表达式在控制器上设置属性。

假设你在控制器上有一个属性activeData,然后像这样使用ng-click

ng-click="activeData = [I , item]"

【讨论】:

  • 我有 2 个函数传回控制器。一个包含innerItems 列表,另一个包含Info。目的。但我只能读取控制器中的内部项目数组,但不能读取 Info 对象
  • 这不是 HTML onclick 处理程序。这是ng-click - ng-click 需要一个表达式,例如 activeInfoItems = [I, item] - 其中activeInfoItems 将是您的控制器上的一个属性,在选中复选框时设置。
  • 转到这里:docs.angularjs.org/api/ng/directive/ngClick#usage 点击在 Plunker 中编辑
【解决方案2】:

我已将多个参数传递给我的一个函数本身,例如 getInfo (I, items),并尝试在控制器中访问而无需使用任何属性。效果很好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多