2014-02-25 121 views
1

我遇到了一个奇怪的问题,我似乎无法解决我的问题。我正在使用一个生成我网站树形视图的指令。当我选择一个站点时,我有两个选择框,其中填充了一个站点中的组和站点中的列表。当选项填充时,它们全部被选中。我检查了元素,他们都有option="selected"奇怪的是,当我点击一个选项时,所有其他选项消失,只剩下选定的选项。我已经在Chrome控制台中检查了源代码,只有选定的选项标记保留。ngOptions默认选择了所有选项,并且选择了消失选项

enter image description here

对于〔实施例的网站列出了选择框有多种选择,但是当我点击了旧文件,但其他全部消失了。在网站用户组,各组已经选定 Ctrl键:

spApp.controller('sitesCtrl', 
    function sitesCtrl($scope, $q, $modal, UserService, GroupService, SiteService){ 
     //Options for tree controller directive 
     $scope.treeOptions = { 
      nodeChildren: "children", 
      dirSelectable: true, 
      injectClasses: { 
       ul: "a1", 
       li: "a2", 
       liSelected: "a7", 
       iExpanded: "a3", 
       iCollapsed: "a4", 
       iLeaf: "a5", 
       label: "a6", 
       labelSelected: "a8" 
      } 
     } 

     //Returns siteMap for tree controller directive 
     $scope.siteMap = SiteService.getSiteMap(); 

     //Returns selected sites information: grous, lists, title, url 
     $scope.showSelected = function(site){ 
      var siteData = SiteService.getSiteInfo(site); 
      //sets sites title and url in view 
      $scope.site = site; 
      $scope.siteGroups = siteData.groups; 
      $scope.siteLists = siteData.lists; 
     } 

    } 
); 

查看:

<div class="siteGroups"> 
     <label for="siteGroups">Site Groups</label> 
     <select 
      multiple 
      name="siteGroups" 
      id="siteGroups" 
      class="siteGroups" 
      ng-model="siteGroups" 
      ng-options="g.name for g in siteGroups"> 
     </select> 
    </div> 
     <div class="btm1 animated fadeInUp"> 
     <label for="siteLists">Site Lists </label> 
     <select multiple 
      id="siteLists" 
      ng-model="siteLists" 
      ng-options="l.title for l in siteLists"> 
     </select> 
    </div> 

Service and more of the view

回答

3

发生这种情况,因为在选择列表中的ngOptions是有界的同一个数组作为ngModelngModel需要是仅保存选定值的不同数组。

随着siteGroups为例,正在发生的事情是,选择列表选项与siteGroups初始化,他们都选择了,因为项目是ngModel(也siteGroups阵列)英寸当您点击其中一个时,它现在会从ngModel中删除您点击的其他项目以外的所有其他项目。由于ngOptions限定在同一个列表中,所有未选定的选项也都消失。

要解决此问题,请在您的作用域上为每个列表中的选定值创建单独的数组属性。

+0

是的,你是对的。我改变了ngModel,它完美的工作。 – Batman

相关问题