Ng-repeat适用于< <ul>< light >等,但在选择完全相同的源时失败
ng-repeat works with <p>, <ul><li>, etc, but fails on select using exact same source
根据移动操作系统选择填充常用手机和平板电脑型号列表的部分应用如下:
<div class="input-field col s3">
<label class="active">Environment (OS)</label>
<select ng-model="environment" ng-change="listBrowsers()">
<option value="" disabled>Select an OS</option>
<option ng-repeat="OS in OSes">{{OS}}</option>
</select>
</div>
$scope.listBrowsers()的一个片段用于上下文(来自控制器)....
$scope.listBrowsers = function() {
$scope.browsers = MachineDataService.getBrowsers($scope.environment);
$scope.browser1 = null;
$scope.notMobile(); //calls another function to determine mobile-ness
$scope.getMobileDevices($scope.environment);
return $scope.browsers;
}
接下来'getMobileDevices'作用域函数调用一个类似命名的服务方法:
this.getMobileDevices = function(envt) {
var deviceList = [];
for (i=0; i < _devices.length; i++) {
if (_devices[i].versions.indexOf(envt) > -1) {
deviceList.push(_devices[i].name);
}
}
return deviceList;
}
但是问题出现在视图的结果变化中:
This works——
<div class="input-field col s6">
<label class="active">Phone/Tablet Model:</label>
<p ng-repeat="device in mobileDevices">{{device}}</p></div>
这并不:
<div class="input-field col s6><select ng-model="mobileDeviceType">
<option value="" disabled selected>Choose a device...</option>
<option ng-repeat="device in mobileDevices" value="{{device}}">{{device}}</option>
</select></div>
事实上,即使用单选按钮替换选择也是有效的——来自同一个来源!
注意:我承认我可能遗漏了一些东西——Angular对我来说还是很新鲜的。请原谅我使用了Materialize而不是Angular Material——我以后可能会用Angular Material重写,但一开始并不知道它的存在。
编辑——为了帮助说明这一点,这里有一个使用重复器的段落的结果截图,而使用ng-options的选择。
sample-with-ngoptionssample-with-paragraph-ngrepeat
有趣的是,它在这里为我工作!我采取了相同的代码片段,你已经提供并使这个演示,它的工作很好。你能检查一下你是否也在做同样的事情吗?
虽然您提供的代码中有语法错误,但<div class="input-field col s6><select ng-model="mobileDeviceType">
将其更改为<div class="input-field col s6"><select ng-model="mobileDeviceType">
,您在class属性末尾错过了"
var adminPage = angular.module("adminPage", []);
adminPage.controller('adminPage1', function($scope, $http, $window) {
$scope.mobileDevices = ['Apple', 'HTC', 'Samnsung', 'One plus'];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="adminPage" ng-controller="adminPage1" class="input-field col s6">
<select ng-model="mobileDeviceType">
<option value="" disabled selected>Choose a device...</option>
<option ng-repeat="device in mobileDevices" value="{{device}}">{{device}}</option>
</select>
</div>
相关文章:
- 当json解析空响应时,Whatwg-Fetch失败,我该如何防止它
- JsFiddle在分叉后描述失败
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- 当一些承诺失败时,如何继续使用$q.all()
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 在Jquery中单击传播失败
- 网页上失败的javascript会导致所有其他脚本失败
- 带有对象解析的响应javascript ajax失败
- 一台特定计算机的Ajax请求数据未定义/失败
- Nodejs服务器:加载资源失败:服务器的响应状态为404(未找到)
- jQuery.getJSON失败,语法错误
- ng disabled在放入多个表达式时失败
- Jasmine单元测试在监视服务方法时失败
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- 在iframe的情况下,jQuery html()将失败
- 在我的情况下,使用带有变量失败的 jquery 选择器
- CSS中的转换似乎失败了,原因是什么
- 在数组中插入对象失败
- Backbone fetch中的Ajax在fetch调用退出后完成,因此fetch调用中没有成功/失败事件
- Ng-repeat适用于<
- < light >等,但在选择完全相同的源时失败