2016-11-08 3 views
0

Итак, я пытаюсь прочитать список параметров с сервера и поместить его в тег, причем первый параметр по умолчанию - что действительно важно сделать, но все, что у меня есть, это то, что модель настроена правильно, но в выборе она показывает пустое !, и я понятия не имею, почему это так!ng-model получает дефолт по умолчанию, но select не отображает текст, вместо этого отображается пусто

Я пробовал много соул, here, here и here.

вид: -

<select ng-options="option as option.Name for option in options track by option.ID" ng-model="selected"> 

контроллер: -

DataService.getOptionsFromServer().then(function (result) { 
    //console.log(result.data); 
    $scope.options = result.data; 
    $scope.selected = $scope.options[0]; 
    console.log($scope.selected); 
}, function (err) { 
    console.error(err); 
}); 

console.log($scope.selected); 

показывает, что выбранный в настоящее время установлены правильно! любая помощь?

Update1: Кажется, проблемы совместимы между угловыми и jquery-mobile (не добавленными мной: @), кто-нибудь что-то знает об этом?

Update2: при удалении jquery.mobile.min.js, он отлично работает. к сожалению, мне нужно, чтобы он выбрасывал проект.

Обновление 3: Проблема заключается в том, что JQM создает диапазон, чтобы отображать выбранное значение, и в этом проблема !, Я привязал выделение, а не span. проблема заключается в том, что я не могу связать срок до сих пор, «cuase JQM генерировать промежуток во время выполнения :(, поэтому если закомментировать JQM JS работает отлично

Updated4:. решена: D , решение приводится ниже для дальнейшего использования.

+0

Вы можете попробовать использовать ng-init = "selected"? –

+0

Я воссоздал скрипку, и она отлично работает: http: // jsfiddle.net/Lvc0u55v/11726/ – Matheno

+0

Кажется хорошо работать, а также при загрузке параметров асинхронно: https://jsfiddle.net/t2g15fjy/ – devqon

ответ

1

проблемы заключается в том, что JQM не отображает сам выбранное значение, вместо этого он получает выбранное значение и помещено в диапазон во время выполнения, а затем полностью скрывает выбор, поверьте мне, мне потребовалось> 12 часов, чтобы изучить его с трудом!

так для того, чтобы JQM повторно получить выбранное значение из избранных и отправить его на отображение продолжительности, вы должны вызвать:

jQuery("#SelectId").selectmenu("refresh", true); 

обратите внимание, что в случае, если вы используете угловой, как я, лучше использовать «jQuery», а не «$», чтобы избежать конфликта между угловыми и jQuery.

Не принимайте одно выравнивание линии слегка: D, это стоит больше рабочего дня, чтобы получить его: D, надеюсь, что было бы полезно: D.

импортный ref: here.

также обратите внимание: вы можете сделать угловую директиву, если вы намерены использовать выбор более одного раза: D.

0

может быть, вы не получаете какие-либо данных с сервера, вы можете проверить, что?

+0

не соответствует действительности, как видно из кода //console.log(result.data); Я проверил данные. – Boda

+0

Вопрос обновлен, не могли бы вы его взглянуть? – Boda

+0

Можете ли вы изменить имя переменной $ scope от $ scope.options до $ scope.items и изменить соответствующий код в теге select? – GraveyardQueen