【问题标题】:AngularJS Output filtered variableAngularJS输出过滤变量
【发布时间】:2014-03-28 16:34:37
【问题描述】:

http://plnkr.co/edit/KPMUOp16FAArgx1GsnEx?p=preview

查看代码,第一个变量数组对应一个单选框列表。当您单击其中任何一个时,它会创建第二个单选框列表。第二个列表上的单选框是通过根据第一个选择过滤出第二个数组来创建的。 Debug 显示第一个选择。我要做的是显示一个与您从过滤列表中选择的单选框相对应的变量。

点击"Apple",出现"Red""Yellow" 的单选框列表。如果我点击红色,Debug2 应该显示red - 来自$scope.employees 数组的变量。

想法?

【问题讨论】:

  • 复选框在哪里? Debug 似乎在做与您的要求相同的事情-您为什么要寻找 Debug2
  • 如果您单击"Apple",则会出现一组复选框。如果我点击它们,我希望将它们的变量传递给Debug2
  • 请使用此信息编辑您的问题。从当前的问题中不清楚您面临的问题..

标签: angularjs


【解决方案1】:

在控制器中创建模型:

$scope.selectedSub =$scope.employees[0].value;   

之后,将模型添加到单选按钮:

<div ng-repeat="emploee in employees | filter:filterFunctions.forWorkspace(filtering.workspace_id)">
      <input type="radio" 
      value="{{emploee.value}}"
      ng-model="$parent.selectedSub"
      name="{{emploee.name}}">{{emploee.sub_text}}</input>

查看Plunker中的演示

【讨论】:

  • 嗯。有没有办法将selectedSubfiltering 组合在一个模型下。在这种情况下,输出将是 {"workspace_id": "A", "selectedSub": "red"}
  • 我不这么认为。 ng-repeat 指令中的每个项目都有自己的范围。因此,如果您想在循环之外使用其中一个元素,它应该是控制器中的对象 predefined
【解决方案2】:

在控制器中创建一个方法来设置 Debug2 的值

$scope.Debug2val="";
  $scope.setDebug2val=function(val)
  {
    $scope.Debug2val=val;
  }

然后在 HTML 中通过 ng-click 事件将单选按钮文本传递给上述方法。

这里是JSFiddle

【讨论】:

  • ng-click 的好调用!
猜你喜欢
  • 2015-08-20
  • 1970-01-01
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
  • 2015-03-13
相关资源
最近更新 更多