Angularjs用不同作用域的inng -repeat填充下拉列表

Angularjs populating dropdown with in ng-repeat from different scope

本文关键字:inng -repeat 填充 下拉列表 作用域 Angularjs      更新时间:2023-09-26

嗨,我有以下控制器,使用工厂从数据库获取数据,工作良好。

我的服务是

App.factory("pOvRepository", ['$resource', function ($resource) {
    return {
        pw: $resource('/api/pOv/:id', { id: '@id' }, { update: { method: 'PUT' } }),
        ps: $resource('/api/pStatus/:id', { id: '@id' }, { update: { method: 'PUT' } })
    };
}]);

控制器

App.controller('pOvCtrl', function ($scope, pOvRepository,  $location) {
    $scope.poviews = pOvRepository.pw.query();
    $scope.pS = pOvRepository.ps.query();

我得到$scope.pS的数据是

    [{"p_status1":"Up Coming","p_id":1,"proj":[]},
{"p_status1":"In Progress","p_id":2,"proj":[]},
{"p_status1":"On Hold","p_id":3,"proj":[]}]

在我的html代码中,我试图用$scope.pS

中的数据填充下拉菜单
<div ng-controller="pOvCtrl">
 <form ng-repeat="p in poviews">
 <input type="text" ng-model="p.include_in"/>
<select ng-model="p.p_id" ng-options="a.p_status1 as a.p_id for a in pS"></select>
</form>

当我运行它时,下拉菜单中没有填充来自$scope.pS的选项请让我知道我怎么能解决它。由于

在没有看到服务的情况下很难判断,您需要为数据指定一个回调:

pOvRepository.ps.query({}, function(data) {
    $scope.pS = data;
});