代码之家  ›  专栏  ›  技术社区  ›  Learning-Overthinker-Confused

无法在下拉控件中设置所选选项

  •  2
  • Learning-Overthinker-Confused  · 技术社区  · 6 年前

    $scope.Types 里面 $scope.obj . 它应该有 属于 $范围.类型 $scope.obj.type

    var app = angular.module("myApp", []);
    app.controller("MyController", function($scope) {
       $scope.types =
            [
                { label: "Pizza", value: 1 },
                { label: "Cakes", value: 2 },
                { label: "Pastry", value: 3 }
            ];
            
             $scope.obj = { type : 1 };//I want dropdown selected value to be updated in type variable
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    
    <ul ng-app="myApp" ng-controller="MyController">
     <select name="status" ng-model="obj.value"
     ng-options="type.value as type.label for type in types track by type.value">
           <option value="">Select Types</option>
    </select>
     </ul>

    我不明白我在这里做错了什么。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Abhishek Kumar Seth    6 年前

     var app = angular.module("myApp", []);
    app.controller("MyController", function($scope) {
    
       $scope.obj = {};
       $scope.types =
            [
                { label: "Pizza", value: 1 },
                { label: "Cakes", value: 2 },
                { label: "Pastry", value: 3 }
            ];
             
             $scope.obj.value = 2;
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    
    <ul ng-app="myApp" ng-controller="MyController">
     <select name="status" ng-model="obj.value"
     ng-options="type.value as type.label for type in types">
           <option value="">Select Types</option>
    </select>
     </ul>
        2
  •  1
  •   holydragon    6 年前

    这样地?

    var app = angular.module("myApp", []);
    app.controller("MyController", function($scope) {
       
       $scope.$watch('selectedValue', function(newValue, oldValue) {
            if (newValue){
                $scope.obj.type = newValue.value;
            }
       });
       $scope.types =
            [
                { label: "Pizza", value: 1 },
                { label: "Cakes", value: 2 },
                { label: "Pastry", value: 3 }
            ];
       $scope.obj = { type: 1 };
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    
    <ul ng-app="myApp" ng-controller="MyController">
     <select name="status" ng-model="selectedValue"
     ng-options="type as type.label for type in types track by type.value">
           <option value="">Select Types</option>
    </select>
    {{ obj.type}}
     </ul>