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 .
所以,我正在尝试从服务器读取选项列表,并将其提供给标记,第一个选项作为默认选项 - 这确实很重要 - 但我所拥有的只是模型设置正确,但在 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 .