在SELECT FIELD [ANGULAR JS]中动态加载内容的问题

时间:2014-05-28 22:21:52

标签: javascript angularjs

您好,感谢您的帮助。我有两个选择字段,一个选择字段用于状态,另一个选择用于城市。当用户更改所选状态时,我正试图从服务器中生成的JSON中加载城市。如果你能提供帮助,非常感谢..

的JavaScript

var geo = function(app){

app.controller("geoCtrl",function($scope, $http, geoFactory){   


 $scope.mcpios = [];
 $scope.dptos = [];


   $scope.$watch('dpto', function (nuevoValor, viejoValor) {

       if(!viejoValor || !nuevoValor) return;
       if (nuevoValor.id_departamento === viejoValor.id_departamento) { return; }

       geoFactory.actMucpios($scope.dpto.id_departamento).success(function(rs){

           console.log(rs[0]);
           $scope.mcpios = rs[0];

      }); 


    }, true);

     geoFactory.get().success( function(rs){

                $scope.dptos = rs[1];
            $scope.dpto = $scope.dptos[0];


     });




});

app.factory(" geoFactory",function($ http){

var factory = {};

factory.get = function(){

    return  $http.get("aplicacion/controladores/controlador_geo.php?listar");

 };   

factory.actMucpios = function(id_dpto){

 return $http.get("aplicacion/controladores/controlador_geo.php?listar&id_dpto=" +  id_dpto);

}

返回工厂;

});

}

HTML

<select ng-controller="geoCtrl" ng-change="actulizar()" ng-model="dpto" class="col-md-12"  ng-options="dpto.nombre for dpto in dptos"  >
    <option  ng-repeat-start>Seleccione un Departamento</option>
    <option value="{{dpto.id_departamento}}" ng-repeat="dpto in dptos">{{dpto.nombre}}</option>
</select>
<select ng-model="mcpio" class="col-md-12" ng-controller="geoCtrl">
    <option  ng-repeat-start>Seleccione una Ciudad</option>
    <option value="{{mcpio.id}}" ng-repeat="mcpio in mcpios | filter:dpto.id">{{mcpio.nombre}}</option>
</select>

我希望你能帮助我...谢谢

1 个答案:

答案 0 :(得分:0)

我在下面创建了plunkr,模拟调用服务来检索状态列表。然后,当选择状态时,它将从对象中检索(或者如果需要,您可以请求$ scope.watch语句中的状态列表来检索城市,然后将城市列表设置为城市的范围集合,并且每次您选择一个新状态,城市列表将会更改。

以下是查看工作示例的链接:http://plnkr.co/edit/ntUblVSSoBzp053GuYvv?p=preview