1

我有一个用于列表并绑定到数组的选择元素。当数组为空时,将向选择元素添加一个选项元素 - 如下所示。这导致列表被突出显示,这是我不想要的

<select id="activeItemsSelect" ng-model="activeItems" ng-options="item.assessment_title for item in activeAssessments" size="5" class="span10" empty-select>

我正在尝试删除选项元素,并尝试在指令空选择中这样做,尽管没有成功。如何删除此选项元素?

谢谢,提前任何和所有的答复。

4

4 回答 4

0

您可能想要手动添加一个空选项(角度应该抓住它),并ng-switch用于删除它

于 2013-04-26T22:44:30.697 回答
0

我正在使用这个支持ng-size属性表达式的指令:

.directive('ngSize', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            if (element.prop("tagName") !== 'SELECT') {
                throw new Error('ngSize can only be applied to <select>-elements');
            }

            var exp = attrs.ngSize;
            scope.$watch(exp, function (newVal) {
                attrs.$set('size', newVal);
            });
        }
    }
})
于 2014-04-28T13:10:20.157 回答
0

初始化与选择一起使用的模型,因此选择小部件在显示时将具有默认值,而不是显示为空。在您的情况下,在您的控制器中执行以下操作。

$scope.activeItems = $scope.activeAssessments[0].assessment_title
于 2013-08-07T08:06:13.153 回答
0

您可能想要做的只是禁用选择。如果 ng-model 不作为选项存在,Angular 总是添加一个空选项。

<select id="activeItemsSelect" 
        class="span10"
        size="5" 
        ng-model="activeItems" 
        ng-disabled="activeItems.length == 0"
        ng-options="item.assessment_title for item in activeAssessments"
        ></select>

编辑:根据文档更新的 Angular 版本:

https://docs.angularjs.org/api/ng/directive/ngOptions:可以选择将值设置为空字符串的单个硬编码元素嵌套到元素中。然后,此元素将表示 null 或“未选择”选项。请参阅下面的示例进行演示。

<select id="activeItemsSelect" 
        class="span10"
        size="5" 
        ng-model="activeItems" 
        ng-disabled="activeItems.length == 0"
        ng-options="item.assessment_title for item in activeAssessments">
  <option value="">Select an Option</option>
</select>

当数组为空时,您甚至可能希望将选项重新绑定到某些文本。

于 2013-04-24T07:04:58.237 回答