我有一个角度JS应用程序。在这里我有一个下拉列表,我可以通过输入并按Enter键来创建一个新选项。但是,当我按下回车键时,我得到一些JS异常
这是例外
TypeError: Cannot read property 'disabled' of undefined
at angular.js:26183
at forEach (angular.js:336)
at readNgOptionsMultiple [as readValue] (angular.js:26181)
at angular.js:28062
at Scope.$get.Scope.$eval (angular.js:15830)
at Scope.$get.Scope.$apply (angular.js:15929)
at HTMLSelectElement.<anonymous> (angular.js:28061)
at HTMLSelectElement.jQuery.event.dispatch (jquery-2.1.4.js:4435)
at HTMLSelectElement.elemData.handle (jquery-2.1.4.js:4121)
at Object.jQuery.event.trigger (jquery-2.1.4.js:4350)
该文件是Angular.js文件,下面是它所导致的位置。
forEach(selectedValues, function(value) {
var option = options.selectValueMap[value];
if (!option.disabled) selections.push(options.getViewValueFromOption(option));
});
我的HTML / Angular代码如下
<div class="row">
<div class="col-xs-12">
<div class="form-group form-md-line-input form-md-floating-label">
<select class="js-select2-tags form-control input-lg form-control-static" id="new-note-tags" name="note-tags" style="width: 100%" multiple="multiple" data-placeholder="Type one or more tags..."
ng-model="addNote.AssociatedTags" ng-options="option.Name for option in NoteTags track by option.Name"
data-rule-required="true"
data-msg="Note tags cannot be empty"></select>
<label for="new-note-tags">Note Tags<span class="required"> * </span></label>
</div>
</div>
</div>
有人能指导我吗?
更新: 我已经检查了这个,我的观察是新增加的选项实际上没有被添加到选项中。 var option = options.selectValueMap [value];
我已添加此代码以确保添加选项。看起来它不起作用。请注意我有一个多选控件。
$('.js-select2-tags', $container).select2({
tags: true,
multiple: true,
placeholder: jQuery(this).data('placeholder'),
allowClear: false
})
enter code here
答案 0 :(得分:0)
我想说可能是因为你的新选项没有值所以options.selectValueMap不能按预期工作。
返回undefined
只需用
进行测试if(option && !option.disabled)