ng-model 正确默认,但 select 不会显示文本,而是显示空白

ng-model gets defaulted correctly, but select won't show the text, shows blank instead

所以,我正在尝试从服务器读取选项列表,并将其提供给标记,第一个选项作为默认选项 - 这确实很重要 - 但我所拥有的只是模型设置正确,但在 select 中显示空白!,我不知道为什么会这样!

我已经尝试了很多 SO soulations,here, here, and

查看:-

<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);

表明 selected 设置正确! 有帮助吗?

Update1: 似乎问题是 angular 和 jquery-mobile 之间的兼容性(不是我添加的 :@),有人对此有所了解?

Update2: 删除 jquery.mobile.min.js 时,效果很好。不幸的是,我需要它扔掉项目。

Update3: 问题是 JQM 产生了一个跨度来显示值 selected,这就是问题所在!,我绑定了 select,不是跨度。 问题是直到现在我还不能绑定跨度,因为 JQM 在运行时生成跨度:(,这就是为什么在注释掉 JQM js 时它工作正常。

Updated4: 已解决:D,下面给出解决方案以供将来参考。

也许您没有从服务器获取任何数据,您可以检查一下吗?

问题是 JQM 本身不显示 selected 值,而是获取 selected 值,并在 运行 时间内放入一个跨度中,并且然后完全隐藏 select,相信我,我花了 > 12 个小时才学会它!

因此,为了让 JQM 从 select 重新获取 selected 值并将其发送到显示跨度,您必须调用:

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

请注意,如果您像我一样使用 angular,最好使用“jQuery”而不是“$”以避免 angular 和 [=27= 之间的冲突].

不要掉以轻心 :D,获得它需要一个工作日以上的时间 :D,希望它会有所帮助 :D。

重要参考:here.

另请注意:如果您打算多次使用 select,您可以创建一个 angular 指令 :D .