Angularjs 如何检查选择列表中的元素数并禁用单选按钮?

Angularjs 如何检查选择列表中的元素数并禁用单选按钮?,angularjs,Angularjs,我想: 当选择列表(名称为“UpdatedVertisement”)只有1个元素时,禁用单选按钮(名称为“advertisementType”) 当选择列表上的所选选项具有空值时,禁用提交按钮(名称为“saveButton”) 我怎样才能做到这一点呢 这是我的html: <div ng-controller="AdvertisementCtrl"> <form ng-submit="save()"> <input type="radio

我想:

  • 当选择列表(名称为“UpdatedVertisement”)只有1个元素时,禁用单选按钮(名称为“advertisementType”)
  • 当选择列表上的所选选项具有空值时,禁用提交按钮(名称为“saveButton”)
我怎样才能做到这一点呢

这是我的html:

<div ng-controller="AdvertisementCtrl">
    <form ng-submit="save()">

        <input type="radio" ng-model="advertisementType" name="advertisementType" value="false">Update<br />

        <select ng-model="updateAdvertisement" name="updateAdvertisement" ng-show="advertisementType == 'false'">
            <option value>Select item</option>
            <option value="1">Volvo</option>
            <option value="2">Saab</option>
            <option value="3">Mercedes</option>
            <option value="4">Audi</option>
        </select>

        <input type="submit" value="Save" name="saveButton" ng-disabled="saveButton" />

    </form>
</div>

更新
选择项 沃尔沃汽车 萨博 梅赛德斯 奥迪
这是我的javascript(但我不知道):


函数AdvertisementCtrl($scope){
}
  • 从控制器中声明的数组填充select
  • 检查数组长度并在数组长度为1时禁用单选按钮
  • 根据UpdatedVertisement的值禁用saveButton

    <script>
    function AdvertisementCtrl($scope) {
        $scope.cars = ['Volvo', 'Saab', 'Mercedes', 'Audi', 'BMW'];
    }
    </script>
    
    
    函数AdvertisementCtrl($scope){
    $scope.cars=[‘沃尔沃’、‘萨博’、‘梅赛德斯’、‘奥迪’、‘宝马’];
    }
    
  • 标记:

       <div ng-controller="AdvertisementCtrl">
           <form ng-submit="save()">
           <input type="radio" ng-model="advertisementType" name="advertisementType" value="false" ng-disabled="cars.length <= 1">Update<br />
           <select ng-model="updateAdvertisement" name="updateAdvertisement" ng-show="advertisementType == 'false'" ng-options="cars">
           </select>
           <input type="submit" value="Save" name="saveButton" ng-disabled="updateAdvertisement" />
           </form>
       </div>
    
    
    更新
    应该用小提琴测试:-),以后可以这样做

    <div ng-controller="AdvertisementCtrl">
    
        <form ng-submit="save()">
    
            <input type="radio" ng-model="advertisementType" name="advertisementType" ng-disabled='carTypes.length<=1' value="false">Update<br />
    
            <select ng-model="updateAdvertisement" name="updateAdvertisement" ng-options="item.type for item in carTypes">
                <option value>Select item</option>
            </select>
    
            <input type="submit" value="Save" name="saveButton" ng-disabled="!updateAdvertisement" />
    
        </form>
    
    </div>
    

    JSFIDLE在这里

    Thx,但RCHAWDY解决方案更好;)此外,在检索选定列表的当前值时,Angular将为您提供整个选定对象,而不仅仅是一个值。因此,在save()函数中,可以通过引用$scope.UpdatedVertisement.id来检索当前选定项的id,或者如果需要名称,可以使用$scope.UpdatedVertisement.type。在这里再次看到更新的JSFIDLE Thx:)
    <div ng-controller="AdvertisementCtrl">
    
        <form ng-submit="save()">
    
            <input type="radio" ng-model="advertisementType" name="advertisementType" ng-disabled='carTypes.length<=1' value="false">Update<br />
    
            <select ng-model="updateAdvertisement" name="updateAdvertisement" ng-options="item.type for item in carTypes">
                <option value>Select item</option>
            </select>
    
            <input type="submit" value="Save" name="saveButton" ng-disabled="!updateAdvertisement" />
    
        </form>
    
    </div>
    
    function AdvertisementCtrl($scope) {
        $scope.carTypes = [
            {id:'1', type:'Volvo'},
            {id:'2', type:'Saab'},
            {id:'3', type:'Mercedes'},
            {id:'4', type:'Audi'}
        ]
    }