angulaire.js - Pourquoi ng-change ne se déclenche-t-il pas lorsqu'angular attribue une valeur à sélectionner ?
巴扎黑
巴扎黑 2017-05-15 16:59:57
0
4
856

1. Le code HTML est le suivant :

<!-- 这个是街道 -->
<select name="jd" ng-model="wgy.jd" class="form-control input-sm" ng-options="jd.code as jd.label for jd in bmOfJd" ng-change="getSqBm(wgy.jd)">
    <option value="">--请选择--</option>
</select>
<!-- 这个是社区 -->
<select name="sq" ng-model="wgy.sq" class="form-control input-sm" ng-options="sq.code as sq.label for sq in bmOfSq">
   <option value="">--请选择--</option>
 </select>

2. Le code JS est le suivant :

//如果选择街道,去取出社区
$scope.getSqBm = function(jd){
        BmService.getXzqh(jd)
            .then(function(data){
                $scope.bmOfSq = data;
            });
    };

3. Question : Comme cela est commun à la nouvelle page et à la page de requête, lors de la modification de la page, j'attribue une valeur à la rue wgy.jd, mais cela ne déclenchera pas le changement de rue. Comment puis-je. le déclencher ? Et ng-change ?

巴扎黑
巴扎黑

répondre à tous(4)
曾经蜡笔没有小新

Merci pour vos réponses, j'ai trouvé un moyen
Il s'agit d'appeler manuellement la méthode ng-change getSqBm($scope.wgy.jd) après avoir attribué une valeur à wgy.jd,
De cette façon déclenchera la rue ng-changée ! ! !
Voici des instructions détaillées

刘奇

Il est préférable d'utiliser watch pour déclencher une méthode en observant les changements dans les données

漂亮男人

http://stackoverflow.com/questions/14386570/getting-the-ng-object-selected-with-ng-change

我想大声告诉你

HTML

<select ng-model="wgy.jd"
        ng-change="getSqBm()">
    <option value="">--请选择--</option>
    <option ng-repeat="jd in jds" value="{{jd.id}}">{{jd.name}}</option>
</select>
<select ng-model="wgy.sq">
    <option value="">--请选择--</option>
    <option ng-repeat="sq in sqs" value="{{sq.id}}">{{sq.name}}</option>
</select>

SCRIPT

angular.module('myApp', [])
        .controller('MyCtrl', function ($scope) {
            $scope.wgy = {
                jd: '',
                sq: ''
            }

            $scope.jds = [
                {
                    id: 1,
                    name: '街道1',
                    sq: [
                        {
                            id: 1,
                            name: '街道1-社区1'
                        },
                        {
                            id: 2,
                            name: '街道1-社区2'
                        }
                    ]
                },
                {
                    id: 2,
                    name: '街道2',
                    sq: [
                        {
                            id: 1,
                            name: '街道2-社区1'
                        },
                        {
                            id: 2,
                            name: '街道2-社区2'
                        }
                    ]
                }
            ];

            $scope.sqs = [];

            $scope.getSqBm = function(){
                if(!$scope.wgy.jd){
                    $scope.sqs = [];
                    return ;
                }

                $scope.sqs = $scope.jds.filter(function(jd){
                    return jd.id == $scope.wgy.jd;
                })[0].sq;
            }
        });
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal