在实现AngularJS选择的指令时出现以下错误。


  错误:
      TypeError:a.map不是函数
          位于nh.q.writeValue(angularjslatest.js:307)
          在Object.e。$ render(angularjslatest.js:328)
          在angularjslatest.js:310
          在angularjslatest.js:146
          在m。$ digest(angularjslatest.js:147)
          在m。$ apply(angularjslatest.js:150)
          在l(angularjslatest.js:102)
          在XMLHttpRequest.s.onload(angularjslatest.js:108)


我在下面解释我的代码:

<select chosen
        multiple
        class="form-control oditek-form"
        name="category"
        id="category"
        ng-model="category"
        ng-options="s.value as s.name for s in listOfCategory">
</select>


我的控制器代码如下。

$scope.listOfCategory = [{
  name: 'Select Category',
  value: ''
}];

$scope.category = $scope.listOfCategory[0];

var fileURL = '';
var url1 = '../service/admin/vechile/service/service.php?action=getAllCategoryData';
var method = 'GET';
var data1 = '';

DataService.connectToServerSideScript(method, url1, data1).then(function(response) {
  if (response.length > 0) {
    angular.forEach(response, function(obj) {
      var cdata = {
        'name': obj.category_name,
        'value': obj.id
      };
      $scope.listOfCategory.push(cdata);
    })
  }
}, function(error) {

});


在这里,我获得了所有数据,但是这些错误正在浏览器控制台中出现。在这里,我需要清除这些错误。

最佳答案

您需要将所选模型设置为数组:

$scope.category = angular.isDefined($scope.listOfCategory[0]) ?
                      [$scope.listOfCategory[0]] : [];


请注意,这还可以修复以下错误消息:


  错误:TypeError:a.forEach不是函数

07-24 09:36