select2 组件报错 Uncaught TypeError: Cannot read property 'toUpperCase' of undefined,问题原因,解决方案

问题原因

报这个错是因为数据封装不正确,select2的封装格式如下
{data:[{}]}
实际例子
{ data : [{“id”:1,“text”:“联想”} , {“id”:2,“text”:“华为”}] }
必须将数据封装成这种格式才能给select2赋值调用.select2动态框写法如下

<input select2  select2-model="entity.brandIds" config="brandList" multiple
 placeholder="选择品牌(可多选)" class="form-control" type="text">

select2-model 属性绑定的是一个对象,例如 {“id”:1,“text”:“联想”}

楼主错误原因是在前端的controller层写错了数据格式,错误如下
在赋值时不小心用"[]"吧response括起来了,所以会报错
正确写法是: $scope.specificationList={data:response};

$scope.findSpecificationList = function () {
		specificationService.selectOptionList().success(
			function (response) {
				$scope.specificationList={data:[response]};
			}
		)
	}

注意事项:

  1. {“id”:1,“text”:“联想”}这个对象的键必须是 id 和 text 否则也会报此错误,注意要区分大小写.
  2. 数据库中保存有脏数据也会引起这种错误,即数据库中不能有null的字段.
  3. 例如数据 {“id”:1,“text”:“联想”} ,text键对应的值必须是字符串,否则也会报这个错.

你可能感兴趣的:(java)