angular 从对象 laravel 填充下拉列表

angular populate dropdown from object laravel

您好,我正在使用 Angualr 来填充 select 框,我正在获取标签列表,这些标签按如下方式分组(我在 JSON 中使用 Laravel 这样我就可以以友好的格式输出它。);

要在 selected

中填充的努力选项
{
 "5. XS":{"94":"01:00:00"},
 "4. S":{"96":"02:00:00"},
 "3. M":{"98":"04:00:00"},
 "2. L":{"100":"07:00:00"},"
 1. XL":{"102":"16:00:00"},
"0. XXL":{"104":"38:00:00"},
"105":"Estimate Required"
} 

我也将 selected 的努力传回如下;

{"67","697"}

然后在 angular 中,我执行以下操作:

Planning.groom(id)
            .success(function (planning) {
                $scope.tasks = planningtasks;
                $scope.name = planning.name
                $scope.id = planning.id;
                $scope.auth = planning.auth;
                $scope.effortTags = planning.effort;                
            });

然后在我看来我会做以下事情;

 <select ng-model="entity.selected_tags.effort"
         ng-options="effort for effort in effortTags.effort">
  </select>

但是我似乎无法显示要显示的选项,知道我做错了什么吗?

我想用选项组重新创建这个下拉菜单,但有些选项可能没有选项组,它们可能本身就是一个选项,如上面选项 "Estimate Required" 中所示;

我已经能够使用 Laravel 和 jQuery 来做到这一点。

您需要重组底层 JSON,例如像这样

$scope.effortTags = [
     { category: "5. XS", id: "94", value: "01:00:00" },
     { category: "4. S", id: "96", value: "02:00:00" },
     { category: "3. M", id: "94", value: "04:00:00" },
     { category: "2. L", id: "94", value: "07:00:00" },
     { category: "1. XL", id: "94", value: "16:00:00" },
     { category: "0. XXL", id: "94", value: "38:00:00" },
     { id: "105", value: "Estimate Required" }
  ];

然后你可以在模板中这样做:

<select ng-model="entity.selected_tags.effort"
         ng-options="effort as effort.value group by effort.category for effort in effortTags">
</select>