Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs多个选定项由字符串而不是对象组成_Angularjs - Fatal编程技术网

angularjs多个选定项由字符串而不是对象组成

angularjs多个选定项由字符串而不是对象组成,angularjs,Angularjs,我已经创建了一个带有多个的select标记,以将其显示为列表框而不是下拉列表 我有一个属性,该属性应包含所选的schoolclass,该属性由多个属性组成,如:id、schoolclass、subject、schoolclassIdentifier和color 当我现在在列表框中选择一个项目并按下删除按钮时,$scope.activeStep.selectedSchoolclassCodes数组包含一个类似“Math10b”的字符串,实际上selectedSchoolclassCodes数组应该

我已经创建了一个带有多个的select标记,以将其显示为列表框而不是下拉列表

我有一个属性,该属性应包含所选的schoolclass,该属性由多个属性组成,如:id、schoolclass、subject、schoolclassIdentifier和color

当我现在在列表框中选择一个项目并按下删除按钮时,$scope.activeStep.selectedSchoolclassCodes数组包含一个类似“Math10b”的字符串,实际上selectedSchoolclassCodes数组应该包含一个从上述属性创建的对象

为什么我选择的对象是错误的

HTML

<div class="col-md-6">
<select size="10"  class="form-control col-md-6" multiple ng-model="activeStep.selectedSchoolclassCodes">
  <option class="co-md-6" ng-repeat="item in activeStep.schoolclasses" style="background: rgb({{item.color}})" value="{{item.schoolclassCode}}">{{item.schoolclassCode}}</option>
</select>
</div>

{{item.schoolclassCode}
控制器

'use strict';
angular.module('iplanmylessons').controller('EditSchoolclassCodeWizardStepController', function ($scope, wizardDataFactory, SchoolclassCodeViewModel) {

  $scope.activeStep.schoolclassCodeColors = [
    '255,165,0',
    '255,255,0',
    '145,240,140',
    '0,128,0',
    '170,210,230',
    '255,190,200',
    '240,130,240',
    '100,100,255',
    '210,210,210',
    '255,0,0'
  ];

  $scope.activeStep.selectedSchoolclassCodes = wizardDataFactory.schoolclassCodesAdded[0];
  $scope.activeStep.newSchoolclass = "";
  $scope.activeStep.newSubject = "";
  $scope.activeStep.newSchoolclassIdentifier = "";
  $scope.activeStep.schoolclasses = wizardDataFactory.schoolclassCodesAdded;
  $scope.activeStep.schoolclassCodeColorsIsOpen = false;
  $scope.activeStep.selectedSchoolclassCodeColor = null;

  $scope.activeStep.deleteSchoolclassCode = function () {
    for (var i = 0; i < $scope.activeStep.selectedSchoolclassCodes.length; i++) {
      var index = Enumerable.from( wizardDataFactory.schoolclassCodesAdded).indexOf(function (s) {
          return s.schoolclassCode === $scope.activeStep.selectedSchoolclassCodes[i].schoolclassCode;
        });

      wizardDataFactory.schoolclassCodesAdded.splice(index, 1);
    }
    $scope.activeStep.selectedSchoolclassCodes = null;
  };

  $scope.activeStep.schoolclassCode = function () {
    return $scope.activeStep.newSubject + $scope.activeStep.newSchoolclass + $scope.activeStep.newSchoolclassIdentifier;
  };

  $scope.activeStep.setSchoolclassCodeColor = function (item) {
    $scope.activeStep.selectedSchoolclassCodeColor = item;
    $scope.activeStep.schoolclassCodeColorsIsOpen = false;
  };
});
“严格使用”;
angular.module('iplanmylessons').controller('EditSchoolclassCodeWizardStepController',函数($scope,wizardDataFactory,SchoolclassCodeViewModel){
$scope.activeStep.SchoolClassCodeColor=[
'255,165,0',
'255,255,0',
'145,240,140',
'0,128,0',
'170,210,230',
'255,190,200',
'240,130,240',
'100,100,255',
'210,210,210',
'255,0,0'
];
$scope.activeStep.selectedSchoolclassCodes=wizardDataFactory.schoolclassCodesAdded[0];
$scope.activeStep.newSchoolclass=“”;
$scope.activeStep.newSubject=“”;
$scope.activeStep.newschoolclassdidentifier=“”;
$scope.activeStep.schoolclasses=wizardDataFactory.schoolclassCodesAdded;
$scope.activeStep.schoolClassCodeColorsSopen=false;
$scope.activeStep.selectedSchoolclassCodeColor=null;
$scope.activeStep.deleteSchoolclassCode=函数(){
对于(变量i=0;i<$scope.activeStep.selectedSchoolclassCodes.length;i++){
var index=Enumerable.from(wizardDataFactory.schoolclassCodesAdded).indexOf(函数){
返回s.schoolclassCode==$scope.activeStep.selectedSchoolclassCodes[i]。schoolclassCode;
});
wizardDataFactory.schoolclassCodesAdded.splice(索引,1);
}
$scope.activeStep.selectedSchoolclassCodes=null;
};
$scope.activeStep.schoolclassCode=函数(){
返回$scope.activeStep.newSubject+$scope.activeStep.newSchoolclass+$scope.activeStep.newschoolclassdidentifier;
};
$scope.activeStep.setChoolClassCodeColor=函数(项){
$scope.activeStep.selectedSchoolclassCodeColor=项目;
$scope.activeStep.schoolClassCodeColorsSopen=false;
};
});
您尝试过ng选项吗?对使用对象数组的select/ng选项有很好的解释


希望能有所帮助。

是的,我以前试过,但使用ng选项时,我无法格式化绑定到复杂对象属性的选项背景色。使用ng repeat这是可能的。这家伙说的和我说的一样:=>使用ng repeat,但在我的情况下,我需要绑定到一个对象,而不是字符串列表。。。似乎我必须使用此自定义指令解决方案: