如何在UI中预选项目 - 选择角度1.x.

时间:2017-11-08 16:12:56

标签: javascript angularjs

我正在尝试使用ui-select为角度1.x预选一个项目。 我需要在" Padrao"是的。

我的json回复是这样的:

"listaCecProduto": [
 {
  "aplicacaoProduto": "30",
  "cecs": [
   {
   "idCec": 339,
   "nome": "RH - 16584665699425 - 30 - Cultura",
   "ordemExibicao": 1,
   "padrao": false
  }
]
},
{
  "aplicacaoProduto": "31",
  "cecs": [
    {
      "idCec": 340,
      "nome": "RH - 16584665699425 - 31 - Refeição",
      "ordemExibicao": 1,
      "padrao": false
    },
    {
      "idCec": 341,
      "nome": "RH - 16584665699425 - 31 - Refeição - 2",
      "ordemExibicao": 2,
      "padrao": true
    }
  ]
 }
]

这是我的HTML

<ui-select ng-model="cec.item" theme="selectize" title="Select">
   <ui-select-match placeholder="Selecione">
     {{ $select.selected.nome }}
   </ui-select-match>

   <ui-select-choices repeat="item in cecs">
      <span>{{item.nome | highlight: $select.search}}</span>
      <small ng-bind-html="item.idCec | highlight: $select.search"></small>
   </ui-select-choices>  
 </ui-select>

我的控制器:

for (var i in response.data.listaCecProduto) {
      let aplicacaoProduto = response.data.listaCecProduto[i].aplicacaoProduto;
      $scope.produtocec[aplicacaoProduto] = [];
      for (var j in response.data.listaCecProduto[i].cecs){
        $scope.produtocec[aplicacaoProduto][j] = response.data.listaCecProduto[i].cecs[j];
      }
    }
    console.log("produtocec", $scope.produtocec);

    for (var k in $scope.produtocec) {
      if($scope.produtocec[k].length < 2) {
        console.log("k", $scope.produtocec)
        $scope.cec.item[k] = $scope.produtocec[k][0];
      } 
    }

我尝试添加一些课程(&#39;有效的&#39;)来使用条件来检查是否&#34; padrao&#34;是真的,但没有用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

解决它做另一个循环以检查“padrao”状态。

for (var k in $scope.produtocec) {
      if($scope.produtocec[k].length < 2) {
        // console.log("k", $scope.produtocec)
        $scope.cec.item[k] = $scope.produtocec[k][0];
      } else {
        for (var o in $scope.produtocec[k]) {
          if($scope.produtocec[k][o].padrao === true) {
            $scope.cec.item[k] = $scope.produtocec[k][o];
            console.log("o", $scope.produtocec[k][o].padrao);
          }
        }
      }
    }