2017-04-25 46 views
0

我有綁定到對象($ scope.selectedProperties)的陣列的多選下拉:設定模型不結合多選DDL

<select id="propertyDdl" multiple="multiple" 
ng-model="selectedProperties" 
ng-options="account.property_name group by account.client_name for account in accountInfo"> 
</select> 

(accountInfo是包含陣列的範圍屬性對象):

[{client_name:"Client 1", is_demo:false, property_name:"Prop 1"}, 
{client_name:"Client 2", is_demo:false, property_name:"Prop 2" }, 
{client_name:"Client 3", is_demo:false, property_name:"Prop 3" }] 

上的特定事件,我存儲選定項的數組:

$scope.updateSessionProperties = function() { 
    CachingService.cachedSelectedProperties = $scope.selectedProperties; 
}; 

...再後來重新應用它們:

if(CachingService.cachedSelectedProperties && CachingService.cachedSelectedProperties.length>0){ 
    $scope.selectedProperties = CachingService.cachedSelectedProperties; 
} 

的對象(selectedProperties)陣列它被綁定到的結構相同accountInfo:

[{client_name:"Client 1", is_demo:false, property_name:"Prop 1"}, 
{client_name:"Client 2", is_demo:false, property_name:"Prop 2" }] 

沒有運氣...下拉列表顯示「沒有選擇」,即使它綁定的範圍屬性是相同的對象。我曾嘗試執行$ scope。$ apply(),但select元素不會重新綁定。

+0

哪裏'accountInfo'被定義? –

+0

$ scope.accountInfo在$ scope開始處定義,並且是一個與模型相同的數組:[{client_name:「Client 1」,is_demo:false,property_name:「Prop 1」}, {client_name:「Client 2「,is_demo:false,property_name:」Prop 2「}, {client_name:」Client 3「,is_demo:false,property_name:」Prop 3「...}]有趣的是,如果我將accountInfo中的項目推送到selectedProperties綁定DOES可以工作,但是將其他任何方式的相同項目推入selectedProperties失敗。 – DShultz

回答

0

通過ng-options看完後,我建議如下:

<select 
    id="propertyDdl" 
    multiple="multiple" 
    ng-model="userSelectedProperties" 
    ng-options="account.property_name group by account.client_name for account in selectedProperties"> 
</select>