2015-05-18 2 views
1

Я генерирую выпадающий список во время выполнения с помощью AngularJs. Я также хочу связать с ним соответствующие параметры, которые будут созданы на основе создаваемого типа раскрывающегося списка.Создание выпадающего списка во время выполнения и значений выпадающего списка после этого - не работает ngOptions

<div class="form-group" ng-repeat="attrib in col1Attribs"> 
    <label class="control-label" for="txtCode">{{attrib.displayText}}</label> 
    <select class="form-control" 
     ng-options="item.configValue for item in configOptions(attrib.configType)" /> 
</div> 

Мой контроллер имеет следующий способ.

$scope.configOptions = function (type){ 
    return SmartCache.get(type); //SmartCache is my cacheFactory 
} 

EDIT:

Вот мои данные, когда параметр Type = 'Статус'

[{"$id":"1","people":[],"configId":"STAT001","configValue":"Active","startDate":"2014-01-31T00:00:00","endDate":"9999-01-01T00:00:00","description":"Active","status":1,"parentId":null,"isSelectable":true,"timestamp":"AAAAAAAAKHM=","isSystemData":true,"children":[],"parent":null,"personAttributes":[],"items1":[]},{"$id":"2","people":[],"configId":"STAT002","configValue":"Suspended","startDate":"2014-01-31T00:00:00","endDate":"9999-01-01T00:00:00","description":"Suspended","status":1,"parentId":null,"isSelectable":true,"timestamp":"AAAAAAAAKHQ=","isSystemData":true,"children":[],"parent":null,"personAttributes":[],"items1":[]},{"$id":"3","people":[],"configId":"STAT003","configValue":"Terminated","startDate":"2014-01-31T00:00:00","endDate":"9999-01-01T00:00:00","description":"Terminated","status":1,"parentId":null,"isSelectable":true,"timestamp":"AAAAAAAAKHU=","isSystemData":true,"children":[],"parent":null,"personAttributes":[],"items1":[]},{"$id":"4","people":[],"configId":"STAT004","configValue":"Deleted","startDate":"2014-01-31T00:00:00","endDate":"9999-01-01T00:00:00","description":"Deleted","status":1,"parentId":null,"isSelectable":true,"timestamp":"AAAAAAAAKHY=","isSystemData":true,"children":[],"parent":null,"personAttributes":[],"items1":[]}] 

Я могу достичь своей задачи, используя код ниже, но не с помощью ngOptions.

<div class="form-group" ng-repeat="attrib in col1Attribs"> 
     <label class="control-label" for="txtCode">{{attrib.displayText}}</label> 
     <select class="form-control"> 
     <option ng-repeat="c in configOptions(attrib.configType)" value="{{c.configId}}"> 
      {{c.configValue}}</option> 
    </div> 
</div> 

Попробуйте jsFiddle

+0

Каковы данные в SmartCache? – Pindakaas

+0

У SmartCache есть пара значений ключа, то есть «SmartCache.put» («Статус», myJsonObject) ' –

+0

Я думаю, вы хотите создать несколько выпадающих списков на основе типа? – Innovation

ответ

0

Я не могу видеть остальную часть вашего кода. Вот отрывок о том, как создать выпадающий список:

<select data-ng-options="e.description for e in configOptions" data-ng-model="selectedOption" /> 

Демо: http://plnkr.co/edit/YcuqZ1gs4iDAAgfLrZPO?p=preview

+0

Эта привязка будет работать, когда данные данных являются статическими. Однако в моем случае этому configOption нужен параметр, основанный на том, какие данные будут привязаны к выпадающему списку –

0

Возможно, вы пытаетесь это

Использование as

<select class="form-control" 
     ng-options="item.configId as item.configValue for item in configOptions(attrib.configType)" /> 

configId добавляет в качестве значения параметра и configValue как отображаемое значение.

+0

Это не сработало для меня. Я просто скопировал ваши строки параметров –

+0

Можете ли вы опубликовать plnkr.co/edit или jsfiddle.com о том, что вы пробовали? –

+0

Добавлена ​​скрипка, посмотрите –

Смежные вопросы