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 /角碼是如下

<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

我會說可能是因爲你的新選項沒有價值,所以options.selectValueMap不按預期工作。

它返回undefined

只是

if(option && !option.disabled) 
+0

測試看起來是工作,但它是明智的修改angular.js文件?在這個空間中是新的,我不確定更改angular.js文件的風險 –

+0

可能不會在創建選項時使用某種類型的計數器設置虛擬值,該計數器會生成諸如「new1」,「new2」等值將不會有問題 – Walfrat

相關問題