【发布时间】:2016-11-08 10:53:54
【问题描述】:
所以,我正在尝试从服务器读取选项列表,并将其提供给标记,默认第一个选项 - 这是非常重要的事情 - 但我所拥有的只是模型设置正确,但在选择中显示为空白!我不知道为什么会这样!
我尝试了很多 SO 灵魂,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: 似乎问题在于 Angular 和 jquery-mobile 之间的兼容性(不是我添加的:@),有人知道吗?
Update2: 删除 jquery.mobile.min.js 时,它工作正常。不幸的是,我需要它扔掉这个项目。
Update3:问题是 JQM 产生了一个跨度来显示所选值,这就是问题所在!我绑定了选择,而不是跨度。 问题是我现在无法绑定跨度,'因为 JQM 在运行时生成跨度:(,这就是为什么在注释掉 JQM js 时它工作正常。
更新4:已解决:D,下面给出的解决方案供将来参考。
【问题讨论】:
-
您可以尝试使用 ng-init="selected" 吗?
-
我重新制作了一个小提琴,效果很好:jsfiddle.net/Lvc0u55v/11726
-
似乎工作正常,在异步加载选项时也是如此:jsfiddle.net/t2g15fjy
-
@Matheno 我看过小提琴,但它不适用于我的项目,你认为这可能与项目是 Cordova 项目有关吗?!
-
@devqon 我已经看到了小提琴,但它不适用于我的项目,你认为这可能与项目是 Cordova 项目有关吗?!
标签: javascript angularjs cordova jquery-mobile ng-options