[英]AngularJS select not showing model object
AngularJS doesn't seem to be showing my default value (model) for select if I hard code in an object value like the following. 如果我像下面这样硬编码对象值,AngularJS似乎没有显示我的默认值(模型)。
html : html :
<select ng-model="defaultOption" ng-options="o.vala for o in options"></select>
javascript : javascript :
$scope.options = [
{vala: "value1a", valb: "value1b"},
{vala: "value2a", valb: "value2b"}
];
$scope.defaultOption = {vala: "value1a", valb: "value1b"};
Yet if I change $scope.defaultOption
to $scope.options[0]
, I get my default option showing on the select no problem. 但是,如果我将$scope.defaultOption
更改$scope.defaultOption
$scope.options[0]
,则我的默认选项显示在select上没有问题。
Why is this happening, and is there a way I can keep 为什么会这样,有没有办法我可以保持
$scope.defaultOption = {vala: "value1a", valb: "value1b"};
instead of using the indirect referencing? 而不是使用间接引用?
jsfiddle: http://jsfiddle.net/64ycY/8/ jsfiddle: http : //jsfiddle.net/64ycY/8/
(uncomment the other $scope.defaultOption for comparison) (取消注释其他$ scope.defaultOption以进行比较)
Here's one possible solution, as discussed in the question comments above, using underscore.js (could just really be done with a small function instead of pulling in underscore.js) 正如上面问题注释中所讨论的,这是一个使用underscore.js的可能解决方案(实际上可以使用一个小函数来完成,而不是拉入underscore.js)。
var app = angular.module('myApp', []);
app.controller('MainController', function($scope) {
$scope.options = [
{vala: "value1a", valb: "value1b"},
{vala: "value2a", valb: "value2b"}
];
var setDefaultOption = function(option) {
$scope.defaultOption = _.findWhere($scope.options, option);
}
setDefaultOption({vala: "value1a", valb: "value1b"});
});
http://jsfiddle.net/Dogbert/64ycY/9/ http://jsfiddle.net/Dogbert/64ycY/9/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.