无法阅读属性'禁用'未定义的

时间:2016-01-12 16:04:31

标签: angularjs angularjs-ng-repeat ng-options angularjs-ng-options select2

我有一个角度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

1 个答案:

答案 0 :(得分:0)

我想说可能是因为你的新选项没有值所以options.selectValueMap不能按预期工作。

返回undefined

只需用

进行测试
if(option && !option.disabled)