2017-06-09 93 views
0

我試圖關注此tutorial,但我無法使其適用於multiple md-select。事實上,我有多個用戶選擇列表,我希望有2個用戶默認選擇。md-select multiple中的角度材質設置默認選項

是否有解決方案來實現這一目標?

+0

請,爲了讓我們更好地理解這一問題,提供了一個plunker。 –

+0

我希望能夠最初選擇多個選項,例如Bob和Alice。 – jjijji

+0

可以請你分享你正在使用的json對象嗎? – ziaulain

回答

0

你需要跟蹤所有選定的用戶,而不是隻有一個。並根據需要在陣列上刪除/添加它們。

.controller('MyCtrl', function($scope) { 
    $scope.users = [ 
    { id: 1, name: 'Bob' }, 
    { id: 2, name: 'Alice' }, 
    { id: 3, name: 'Steve' } 
    ]; 

    $scope.selectedUsers = []; 

    $scope.selectUser = function (id) { 
    var user = $scope.users.filter(function(user) { 
      return user.id == id; 
     })[0]; 
    var idx = $scope.selectedUsers.indexOf(user); 
    if (idx < 0) { 
     $scope.selectedUsers.push(user); 
    } else { 
     $scope.selectedUsers.splice(idx, 1); 
    } 
    } 
} 

並在視圖中添加multiple並切換到selectedUsers

<md-select ng-model="selectedUsers" multiple ng-model-options="{trackBy: '$value.id'}"> 
    <md-option ng-value="user" ng-repeat="user in users">{{ user.name }}</md-option> 
</md-select> 

Codepen:https://codepen.io/kuhnroyal/pen/VWeWaw

+0

感謝這就是我正在尋找! – jjijji

0

控制器:

$scope.users = [ 
    { id: 1, name: 'Bob' }, 
    { id: 2, name: 'Alice' }, 
    { id: 3, name: 'Steve' } 
]; 

$scope.selectedUser =[ 
    { id: 1, name: 'Bob' }, 
    { id: 2, name: 'Alice' } 
]; 

查看:

<md-select ng-model="selectedUser" ng-model-options="{trackBy: '$value.id'}" multiple> 
    <md-option ng-value="user" ng-repeat="user in users">{{ user.name }} 
    </md-option> 
</md-select> 
+0

它不工作!我閱讀的文檔,我必須使用ngModelOptions,因爲預先選擇的功能驗證,如果項目預選存在或不在列表中。但是,當我們使用模型作爲數組對象,然後對象之間的比較是錯誤的。 – jjijji

0

該代碼定義選定對象

$scope.selectedUsers = []; 

可以通過默認與一些用戶

$scope.selectedUsers =[ 
    { id: 1, name: 'Bob' }, 
    { id: 2, name: 'Alice' } 
]; 

這是因爲它設置的陣列ng-model設置爲selectedUsers。 如果您需要更多關於NG-MODEL的信息,請點擊此處:https://docs.angularjs.org/api/ng/directive/ngModel

您還將瞭解更多關於AngularJS中數據綁定的信息。

此外,您將不得不更新您的HTML以允許md-select具有多個選定的值。

<md-select ng-model="selectedUsers" multiple></md-select>

你會了解更多關於在這裏https://material.angularjs.org/latest/api/directive/mdSelect