我在过去几周一直在使用AngularJS,而真正困扰我的一件事是,即使在尝试了所有排列或http://docs.angularjs.org/api/ng规范中定义的配置之后.directive:select,我仍然得到一个空选项作为select元素的第一个子元素.
这是玉:
select.span9(ng-model='form.type', required, ng-options='option.value as option.name for option in typeOptions');
Run Code Online (Sandbox Code Playgroud)
在这里控制器:
$scope.typeOptions = [
{ name: 'Feature', value: 'feature' },
{ name: 'Bug', value: 'bug' },
{ name: 'Enhancement', value: 'enhancement' }
];
Run Code Online (Sandbox Code Playgroud)
最后,这是生成的HTML:
<select ng-model="form.type" required="required" ng-options="option.value as option.name for option in typeOptions" class="span9 ng-pristine ng-invalid ng-invalid-required">
<option value="?" selected="selected"></option>
<option value="0">Feature</option>
<option value="1">Bug</option>
<option value="2">Enhancement</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我需要做些什么才能摆脱它?
PS:事情也没有这个,但如果你使用select2而没有多重选择,它看起来很奇怪.
我正试图让选择框从使用Ang-repeat和AngularJS 1.1.5的预填充选项开始.相反,选择始终从未选择任何内容开始.它也有一个空选项,我不想要.我认为没有被选中的副作用.
我可以使用ng-options而不是ng-repeat来使用它,但我想在这种情况下使用ng-repeat.虽然我的缩小示例没有显示,但我也想设置每个选项的title属性,据我所知,使用ng-options无法做到这一点.
我不认为这与常见的AngularJs范围/原型继承问题有关.至少我在Batarang检查时没有看到任何明显的东西.此外,当您使用UI选择选项中的选项时,模型会更新正确.
这是HTML:
<body ng-app ng-controller="AppCtrl">
<div>
Operator is: {{filterCondition.operator}}
</div>
<select ng-model="filterCondition.operator">
<option
ng-repeat="operator in operators"
value="{{operator.value}}"
>
{{operator.displayName}}
</option>
</select>
</body>
Run Code Online (Sandbox Code Playgroud)
和JavaScript:
function AppCtrl($scope) {
$scope.filterCondition={
operator: 'eq'
}
$scope.operators = [
{value: 'eq', displayName: 'equals'},
{value: 'neq', displayName: 'not equal'}
]
}
Run Code Online (Sandbox Code Playgroud)
我已经设置了我的应用程序,其中可以使用选择输入按颜色过滤产品列表,$routeprovider如果它存在于URL中,我也将该颜色参数传递给页面.
我现在要做的是更改选择框时更新URL /路由.如何将选择的更改绑定到路由?
可能重复:
如何对AngularJS生成的选择列表进行预选?
在角度教程中,他们设置了一个sortOrder范围变量,默认排序选择为"最新".
在我的小提琴我做的相似但我的选择值没有被选中.相反,我得到空白条目,好像我没有在范围中设置任何值.然而,我可以看到我的排序顺序,我发出了选择的值,它是预设的.
//set a default this way also, but not updating the dropdown
$scope.ddlFilter = {
name: "All Open Events",//doesn't matter what this is, only cares about value
value: "ALL"//"OPEN"
};
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用ng-init设置默认值,但我希望能够这样做.有什么建议?
即使对象相等,预选在选择字段中也不起作用:
<select ng-show="isEditMode(todo.id)" id="assignee" name="assignee"
ng-model="todo.assignee" required
ng-options="user.name for user in users">
</select>
Run Code Online (Sandbox Code Playgroud)
todo.assignee包含一个用户对象,该对象应与用户匹配.
似乎Angular无法识别来自todo.assignee的User对象包含在用户中.我可以手动执行此映射吗?
显示选择时未选择任何值.我可以选择一个用户(来自用户)并保存记录没有任何问题.
调节器
$scope.todos = Todo.query();
$scope.users = User.query();
Run Code Online (Sandbox Code Playgroud)
按照评论中的要求.给定对象的结构: $ scope.todos
[
{
"id": 157,
"description": "my description 0",
"deadline": 1392073200000,
"assignee": {
"id": 34,
"name": "User 1",
"email": "user1@hotmail.com"
},
"comment": "my comment 0",
"done": true
}
...
]
Run Code Online (Sandbox Code Playgroud)
$ scope.users
[
{
"id": 34,
"name": "User 1",
"email": "user1@hotmail.com"
},
{
"id": 35,
"name": "User 2",
"email": "xxc@gmail.com"
},
{
"id": 36, …Run Code Online (Sandbox Code Playgroud)