我想通过设置默认值我NG选项ng-init
,ng-model
等他们并没有在所有的工作。我的代码如下:
angular
var app = angular.module('role', []);
app.controller('fooController', function($scope){
$scope.roles = [{id:1, name:"Administrator"}, {id:2, name: "Student"}];
$scope.user.roles = $scope.roles[0];
});
HTML
<body data-ng-app="role" data-ng-controller="fooController">
<select multiple class="form-control" data-ng-model="user.roles" data-ng-options="role.name for role in roles" required=""></select>
</body>
这是我的Plunkr。 任何帮助,将不胜感激。
更新:
如果您想直接获得此答案中使用的参考,则为:
参考: AngularJS ng-
options中的初始选择
这对我有用:
app.controller('fooController', function($scope){
$scope.roles = [{id:1, name:"Administrator"}, {id:2, name: "Student"}];
$scope.user = {};
$scope.user.roles = [ $scope.roles[0] ];
});
插件中有一个user
未初始化的错误,除此之外,Angular会将ng-options
数组中的每个对象与数组中的每个元素进行比较ng- model
。JavaScript比较不是Angular比较,即使比较JavaScript中具有相同属性的2个对象,也会返回false(不同的对象)。
朋克:http
://plnkr.co/edit/ccsAVvPACnN6Qzje7HcB?p=preview
。
现在,这并不理想。通常,您想根据ID左右关联这些,这是另一种方法:
在HTML中,用于track by
告诉AngularJS比较ID而不是整个对象:
<select multiple class="form-control"
data-ng-model="user.roles"
data-ng-options="role.name for role in roles track by role.id"
required=""></select>
然后,在您的控制器中,您可以使用任何对象而无需实际位于数组中:
app.controller('fooController', function($scope){
$scope.roles = [{id:1, name:"Administrator"}, {id:2, name: "Student"}];
$scope.user = {};
$scope.user.roles = [ {id:1, name:"Administrator"} ];
});
随便看看:http
://plnkr.co/edit/NKLXrwqwk36YfhBSXILN?p=preview
请注意,我什至不需要该name
属性。它只是用于稍后创建适当的对象,但实际上现在不需要匹配,请尝试不使用它!
。
我写了一个详细的教程,并附带了有关此初始选择问题及其变体的视频。它专注于单选,但多选只是使用对象的数组而不是直接使用一个对象。
查看它以获得更多理解-强烈建议:
AngularJS ng-options中的初始选择
。
如果您仍在努力,请在评论中让我知道。
问题内容: 我可以在angularjs中使用默认值设置一个下拉列表, 如何使用来达到相同的效果?我胆战心惊, 但是没用。样品小提琴在这里 问题答案: 使用 为设定的默认值。 这是: 演示
本文向大家介绍详解使用angularjs的ng-options时如何设置默认值(初始值),包括了详解使用angularjs的ng-options时如何设置默认值(初始值)的使用技巧和注意事项,需要的朋友参考一下 这两天我用ng-options过程中遇到的初始值为空白的问题,记得去年就遇到过,怎么解决的忘记了,费了一阵子功夫之后解决了,想记下来,方便遇到同样问题的小伙伴当然还有自己。 1.场景: 就
如何设置ng选项的默认值。。。 以下是我的ng选项指令:
问题内容: 尝试使用WTForms设置SelectField的默认值时,我像这样将值传递给“默认”参数。 我也尝试了以下方法。 都不将默认选定字段设置为“ Def”。这适用于其他类型的字段,例如TextField。如何设置SelectField的默认值? 问题答案: 你发布的第一种方法是正确的,并且对我有用。唯一无法解释的原因可能是你正在运行旧版本的WTForms,它在1.0.1上对我有效
问题内容: 如何为MySQL Datetime列设置默认值? 在SQL Server中为。MySQL的等效功能是什么?如果这是一个因素,我正在使用MySQL5.x。 问题答案: 重要编辑: 自 MySQL 5.6.5起 ,现在可以使用DATETIME字段实现此目的,请看下面的另一篇文章 … 以前的版本无法在DATETIME做到这一点… 但是您可以使用TIMESTAMP来做到这一点: 注意:如果您定
问题内容: 我在这里看到了Angular select指令的文档:http : //docs.angularjs.org/api/ng.directive :select 。我不知道如何设置默认值。这令人困惑: 选择作为数组中值的标签 这是对象: HTML(工作): 然后我尝试在select元素内添加ng-option属性以设置为默认选项(不起作用)。 我究竟做错了什么? 问题答案: 因此,假设该