【问题标题】:AngularJS dependable dropdowns from json tree bind issue来自json树绑定问题的AngularJS可靠下拉列表
【发布时间】:2023-04-02 05:28:01
【问题描述】:

构建一个从数据库中检索数据的应用。 创建了 2 个可靠的下拉菜单 1.类别 2. 分支

所有选择选项都来自服务(类别)获取的 json 树(数组中的数组)。

在控制器中,我使用以下方式获取 json:

$scope.categories = Categories.query();

在 html 中我尝试下面的代码:

<select class="form-control" name="category" ng-model="params.category" ng-options="item as item.name for item in categories track by item.category">
                        </select>

 <select class="form-control" name="branch" ng-model="params.branch" ng-options="branch as branch.name for branch in categories[params.category].branches track by item.category.branch">
                        </select>

Dropdown 1. 类别提取正常,但 Dropdown 2. 分支不起作用。

你能指导一下吗?

【问题讨论】:

  • 在您的 ng-options 下拉菜单中,我认为您不能在括号表示法中使用点表示法,也许只是 categories.params.category.branches。虽然很高兴看到一个笨蛋。

标签: angularjs json dropdown


【解决方案1】:

由于您有一个数组数组,我认为params.category 变量将包含对数组的引用,因此您不能在带有categories[params.category] 的第二次选择中使用它,因为您需要使用索引而不是参考资料。我建议你试试:categories[categories.indexOf(params.category)]

编辑: 由于我不知道你的categories数组长什么样,branch数组长什么样,我只能根据你的代码猜测。 如果您的数据结构与我的想法相似 - here 是一个工作的笨蛋。

主要思想是,如果您的 categories 数组中的元素是一个对象并且具有 branches 属性,那么在您将引用放在 $scope.params.category 中之后,您就可以访问 branches 属性使用点表示法(无需返回categories 数组)。

【讨论】:

  • 试过这个:categories[categories.indexOf(params.category)].branches 现在下拉分支只获取 - 显示所有相关分支但不能选择其中任何一个?
  • 请看我编辑的答案。如果这还不够有用 - 使用 plunker 进行未来讨论会更容易。
  • 非常有帮助的答案。这也适用于第二个下拉列表:code ng-options="branch as branch.name for branch in categories[categories.indexOf(params.category)].branches "> code 我还有一些其他问题,我会得到回来。非常感谢!
  • 祝你好运!将有用的答案标记为“已接受”是 recommended
猜你喜欢
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多