Heim  >  Artikel  >  Backend-Entwicklung  >  Die an das eckige NG-Modell gebundene Auswahl kann nicht zurückgegeben werden?

Die an das eckige NG-Modell gebundene Auswahl kann nicht zurückgegeben werden?

WBOY
WBOYOriginal
2016-09-28 08:54:111038Durchsuche

Ich habe über JSON eine mehrstufige Auswahl generiert

<code><div ng-app="xx" ng-controller="eee">
   <div>
                   

 **{{col_selectlv[1].colname}}**//这个地方下文说到!

                    <select ng-model="col_selectlv[0]" ng-options="x.colname for x in col_select[0]" required>

                        <option></option>
                    </select>
                    <select ng-model="col_selectlv[1]" ng-options="x.colname for x in col_selectlv[0].children"
                            ng-if="col_selectlv[0].children"
                            required >
                        <option></option>
                    </select>
                    <select ng-model="col_selectlv[2]" ng-options="x.colname for x in col_selectlv[1].children"
                            ng-if="col_selectlv[1].children" required >
                        <option></option>
                    </select>
                    <select ng-model="col_selectlv[3]" ng-options="x.colname for x in col_selectlv[2].children"
                            ng-if="col_selectlv[2].children" required >
                        <option></option>
                    </select>
                   
                </div>
</div></code>

app.js sieht so aus:

<code> app.controller('newseditor', function ($scope, $http,$routeParams) {
           $scope.newsid=$routeParams.id?$routeParams.id:'0';
            $http({
                method: 'GET',
                url: 'datacon/col_select.php',

            }).success(function (response) {
                //    console.log(response);
                if (response)
                    $scope.col_select = response;

            })
            $scope.change_selecter = function (r) {
                $scope.select_range = r;
            }
            $scope.news_submit = function () {
                console.log($scope.col_selectlv)

            }
           


        });</code>

Aktivieren Sie news_submit, indem Sie auf die Schaltfläche klicken. Der gewünschte Effekt ist die Ausgabe von col_selectlv, aber das Ausgabeergebnis ist undefiniert.
ng-model ist erfolgreich gebunden, da das oben markierte {{col_selectlv[1].colname}} ausgegeben werden kann, aber ich weiß nicht, warum es nicht über $scope.col_selectlv abgerufen werden kann.

Antwortinhalt:

Ich habe über JSON eine mehrstufige Auswahl generiert

<code><div ng-app="xx" ng-controller="eee">
   <div>
                   

 **{{col_selectlv[1].colname}}**//这个地方下文说到!

                    <select ng-model="col_selectlv[0]" ng-options="x.colname for x in col_select[0]" required>

                        <option></option>
                    </select>
                    <select ng-model="col_selectlv[1]" ng-options="x.colname for x in col_selectlv[0].children"
                            ng-if="col_selectlv[0].children"
                            required >
                        <option></option>
                    </select>
                    <select ng-model="col_selectlv[2]" ng-options="x.colname for x in col_selectlv[1].children"
                            ng-if="col_selectlv[1].children" required >
                        <option></option>
                    </select>
                    <select ng-model="col_selectlv[3]" ng-options="x.colname for x in col_selectlv[2].children"
                            ng-if="col_selectlv[2].children" required >
                        <option></option>
                    </select>
                   
                </div>
</div></code>

app.js sieht so aus:

<code> app.controller('newseditor', function ($scope, $http,$routeParams) {
           $scope.newsid=$routeParams.id?$routeParams.id:'0';
            $http({
                method: 'GET',
                url: 'datacon/col_select.php',

            }).success(function (response) {
                //    console.log(response);
                if (response)
                    $scope.col_select = response;

            })
            $scope.change_selecter = function (r) {
                $scope.select_range = r;
            }
            $scope.news_submit = function () {
                console.log($scope.col_selectlv)

            }
           


        });</code>

Aktivieren Sie news_submit, indem Sie auf die Schaltfläche klicken. Der gewünschte Effekt ist die Ausgabe von col_selectlv, aber das Ausgabeergebnis ist undefiniert.
ng-model ist erfolgreich gebunden, da das oben markierte {{col_selectlv[1].colname}} ausgegeben werden kann, aber ich weiß nicht, warum es nicht über $scope.col_selectlv abgerufen werden kann.

Heißt Ihr Controller „eee“ oder „newseditor“? Der Code scheint unvollständig zu sein

Es stellt sich heraus, dass ng-if eine Subdomain erstellt, also
app.controller('newseditor', function ($scope, $http,$routeParams) {

<code>        **$scope.col_selectlv={}**
       $scope.newsid=$routeParams.id?$routeParams.id:'0';
        $http({
            method: 'GET',
            url: 'datacon/col_select.php',

        }).success(function (response) {
            //    console.log(response);
            if (response)
                $scope.col_select = response;

        })
        $scope.change_selecter = function (r) {
            $scope.select_range = r;
        }
        $scope.news_submit = function () {
            console.log($scope.col_selectlv)

        }
       
</code>
<code>    });
    要定义一个$scope.col_selectlv,才能够获取到col_selectlv</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn