Sob*_*bis 5 angularjs jquery-chosen
我有一个关于在选择的小部件和AngularJS的组合中设置ng-model的问题(请参阅此视频:https://www.youtube.com/watch?v = 8ozyXwLzFYs )
我想要做的是将收件人设置为一些可以预先选择的值.这个例子的HTML和JS(来自视频)
<h1>Chosen</h1>
<select data-placeholder="Choose a Recipient" multiple class="span4 chzn-select" chosen
ng-model="recipients" ng-options="recipient.name for recipient in recipientsList">
</select>
<p ng-repeat="recipient in recipients"><strong>{{recipient.name}}</strong></p>
Run Code Online (Sandbox Code Playgroud)
和控制器中的JS
$scope.recipientsList = [];
$scope.recipients = [];
$scope.fetchRecipients = function() {
$http.get($scope.url).then(function(result){
$scope.recipientsList = [
{"id":0, "name":"Recipient 0"},
{"id":1, "name":"Recipient 1"},
{"id":2, "name":"Recipient 2"},
{"id":3, "name":"Recipient 3"},
{"id":4, "name":"Recipient 4"},
{"id":5, "name":"Recipient 5"},
{"id":6, "name":"Recipient 6"},
{"id":7, "name":"Recipient 7"},
{"id":8, "name":"Recipient 8"},
{"id":9, "name":"Recipient 9"},
{"id":10, "name":"Recipient 10"}
];
$scope.recipients = [{"id":0, "name":"Recipient 0"},
{"id":1, "name":"Recipient 1"}];
});
}
$scope.fetchRecipients();
Run Code Online (Sandbox Code Playgroud)
我尝试了一些组合但菜单中的值没有预先选择,尽管它们存储在收件人中,因为它们在菜单下方可见.你可以在这里看到这个例子:http: //jsfiddle.net/YKZSw/8/
谢谢你的激光.
马捷
AngularJS ngOptions 属性从作为数据源提供的数组中选择一个元素。在您的情况下,recipientsList 数组包含一定数量的对象。然而,由于对象不等式,您希望预选的元素不会出现在列表中,即使它们是相似的。含义recipientsList: {"id":0, "name":"Recipient 0"} 不等于recipients:{"id":0, "name":"Recipient 0"}(您可以在JS中尝试相同的操作)安慰)。Angular 在列表中找不到该元素,因此不会预选。
这个修改后的小提琴有效:http://jsfiddle.net/mananbharara/YKZSw/9/ 这种情况下唯一的区别在于您的收件人定义:
$scope.recipients = [$scope.recipientsList[0], $scope.recipientsList[1]];
在这种情况下,您只有一个列表,并且所选值只能来自该列表。
如果您必须维护两个列表,则可以使用此方法的替代方法是将选择值保留为原始类型。在这种情况下,原始平等将始终成立。
| 归档时间: |
|
| 查看次数: |
9541 次 |
| 最近记录: |