2013-09-15 3 views
-1

Я использую ВЫБ.2 из https://github.com/angular-ui/ui-select2углового щ Выбор2 не может иметь множественный ввод с select2Options в одном контроллере

// I have two input select2 box inside one controller 
<form ng-controller="MyCtrl"> 
<input 
type="text" 
ui-select2="select2Options" 
ng-model="bookmarks" 
> 
<input 
type="text" 
ui-select2="select2Options" 
ng-model="products" 
> 
</form> 
//In controller I have list of bookmarks and products I am trying something like below but  it is not working and both the input box ended up with same data i.e. products. 
function MyCtrl($scope){ 
var bookmarks=[ 
    {id:0,text:"enhancement"}, 
    {id:1,text:"bug"}, 
    {id:2,text:"duplicate"}, 
    {id:3,text:"invalid"}, 
    {id:4,text:"wontfix"} 
    ]; 
$scope.select2Options = { 
    multiple: true, 
    width: "300px", 
    data:bookmarks 
}; 
var products=[ 
    {id:0,text:"Product1"}, 
    {id:1,text:"Product2"}, 
    {id:2,text:"Product3"}, 
    {id:3,text:"Product4"}, 
    {id:4,text:"Product5"} 
    ]; 

$scope.select2Options = { 
    multiple: true, 
    width: "300px", 
    data:products 
}; 

} 

Как вы видите выше кода будет преобразовать два окна ввода, чтобы ВЫБ.2 поля ввода, но и коробка будет иметь продуктов. Я хочу, чтобы окно ввода закладки заполнялось закладками и полем ввода продукта с продуктами.

ответ

1

Чтобы сохранить параметры для закладок и продуктов, вам необходимо использовать 2 отдельных свойства области. В вашем случае параметры продукта являются переопределяющими параметрами закладок, так как одно и то же свойство используется для обоих.

Попробуйте

<form ng-controller="MyCtrl"> 
    <input type="text" ui-select2="bookmarksSelect2Options" ng-model="bookmarks"> 
    <input type="text" ui-select2="productsSelect2Options" ng-model="products"> 
</form> 

и

function MyCtrl($scope) { 
    var bookmarks = [{ 
     id: 0, 
     text: "enhancement" 
    }, { 
     id: 1, 
     text: "bug" 
    }, { 
     id: 2, 
     text: "duplicate" 
    }, { 
     id: 3, 
     text: "invalid" 
    }, { 
     id: 4, 
     text: "wontfix" 
    }]; 
    $scope.bookmarksSelect2Options = { 
     multiple: true, 
     width: "300px", 
     data: bookmarks 
    }; 
    var products = [{ 
     id: 0, 
     text: "Product1" 
    }, { 
     id: 1, 
     text: "Product2" 
    }, { 
     id: 2, 
     text: "Product3" 
    }, { 
     id: 3, 
     text: "Product4" 
    }, { 
     id: 4, 
     text: "Product5" 
    }]; 

    $scope.productsSelect2Options = { 
     multiple: true, 
     width: "300px", 
     data: products 
    }; 

}