Ng-model得到正确的默认值,但选择won't show text,显示空白

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

本文关键字:show 空白 显示 text won 选择 默认值 Ng-model      更新时间:2023-09-26

所以,我试图从服务器读取选项列表,并将其提供给标签,第一个选项作为默认值-这是非常重要的事情要做-但我所得到的是模型被正确设置,但在选择它显示空白!我不知道这是为什么!

我已经试过很多次了,这里,这里,还有这里。

视图:

<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生成一个span来显示所选的值,这就是问题所在!,我绑定了select,而不是span。问题是我现在还不能绑定span,因为JQM在运行时生成span:(,这就是为什么当注释掉JQM js时它工作得很好。

Updated4: solved:D,解决方案如下,以备将来参考。

问题是JQM本身不显示所选值,而是获取所选值,并在运行时放入一个span,然后完全隐藏所选值,相信我,这花了我>12个小时的艰苦学习!

所以为了让JQM从select中重新获得选中的值并将其发送给显示span,你必须调用:

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

注意,如果你像我一样使用angular,最好使用"jQuery"不是"$";以避免angular和jQuery之间的冲突。

不要轻视那一行:D,它花了一个多工作日的时间来得到它;D,希望它对你有帮助:D .

important ref: here.

还需要注意:如果你想要多次使用select,你可以创建一个angular指令:

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