0

我有一个角度 JS 应用程序。在这个我有一个下拉列表,我可以通过键入并按回车键来创建一个新选项。但是,当我按下回车键时,我得到了一些 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
4

1 回答 1

0

我会说可能是因为您的新选项没有价值,所以 options.selectValueMap 无法按预期工作。

它返回未定义

只需测试

if(option && !option.disabled)
于 2016-01-12T16:07:47.387 回答