Angular ui-grid:具有多个选择的下拉列表

时间:2015-12-10 09:42:58

标签: angularjs angular-ui-grid

我正在尝试在anguler-ui-grid中使用多个select但是得到错误:

  

TypeError:value.forEach不是函数       at writeNgOptionsMultiple [as writeValue](angular.js:26579)       在ngModelCtrl。$ render(angular.js:28680)       at Object.ngModelWatch(angular.js:25493)       在Scope。$ digest(angular.js:15888)       在angular.js:16091       at completeOutstandingRequest(angular.js:5552)       在angular.js:5829(匿名函数)@ angular.js:12520(匿名函数)@ angular.js:9292Scope。$ digest @   angular.js:15914(匿名函数)@   angular.js:16091completeOutstandingRequest @ angular.js:5552(匿名   功能)@ angular.js:5829

以下是代码:官方模板中唯一的变化是下拉模板tpl

中的“ multiple ”属性
var app = angular.module('app', ['ngTouch', 'ui.grid',  'ui.grid.edit']);

app.controller('MainCtrl', ['$scope', function ($scope) {

  var myData = [
    {
        "firstName": "Cox",
        "lastName": "Carney",
        "employed": true
    },
    {
        "firstName": "Lorraine",
        "lastName": "Wise",
        "employed": false
    },
    {
        "firstName": "Nancy",
        "lastName": "Waters",
        "employed": false
    }
];

var dropDownArray = [
      { id: 'Gabi', firstName: 'Gabi' },
      { id: 'Gabriel', firstName: 'Gabriel' }];


$scope.msg = "hello shit";

var tpl = '<div>\
  <form\
    name="inputForm">\
    <select multiple\
      ng-class="\'colt\' + col.uid"\
      ui-grid-edit-dropdown\
      ng-model="MODEL_COL_FIELD"\
      ng-options="field[editDropdownIdLabel] as field[editDropdownValueLabel] CUSTOM_FILTERS for field in editDropdownOptionsArray">\
    </select>\
  </form>\
</div>';

$scope.gridOptions = { data: myData,                        
                       columnDefs: [{ field: 'firstName', displayName: 'First Name', width: 190,  
                                        editableCellTemplate: tpl, 
                                        editDropdownValueLabel: 'firstName',
                                        editDropdownOptionsArray: dropDownArray },
                                    { field: 'lastName', displayName: 'Last Name', width: 180 },                                    
                                    { field: 'employed', displayName: 'employed?', width: 180 }]}
}]);

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题 - 一个艰难的问题,因为它适用于角度1.2但不适用于1.4。 我的解决方案是初始字段值必须是数组,而不是字符串。 因此,您的数据必须如下所示:

  var myData = [
    {
        "firstName": ["Cox"],
        "lastName": "Carney",
        "employed": true
    },
    {
        "firstName": ["Lorraine"],
        "lastName": "Wise",
        "employed": false
    },
    {
        "firstName": ["Nancy"],
        "lastName": "Waters",
        "employed": false
    }
];

错误应该消失。