【发布时间】:2017-06-22 12:10:42
【问题描述】:
如果我使用 ng-option 我可以从选择值中获得一个对象, 但是,如果我在选项指令上使用 ng-repeat,我只能得到字符串。 我正在尝试使用 angular.fromJson() 将字符串从 ng-repeat 转换为对象,但我失败了: 我的代码是:
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<p>Select a car:</p>
<select ng-model="selectedCar">
<option ng-repeat="(x, y) in cars" value="{{y}}">{{y.brand}}</option>
</select>
<input type="text" value="{{selectedCar}}">
<h1>You selected: {{selectedCarObj.brand}}</h1>
<h2>Model: {{selectedCarObj.model}}</h2>
<h3>Color: {{selectedCarObj.color}}</h3>
<h1>You selected: {{selectedCar}}</h1>
<h2>Model: {{selectedCar}}</h2>
<h3>Color: {{selectedCar}}</h3>
<p>The visible text inside the dropdown list can also be a property of the value object.</p>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.cars = {
car01 : {brand : "Ford", model : "Mustang", color : "red"},
car02 : {brand : "Fiat", model : "500", color : "white"},
car03 : {brand : "Volvo", model : "XC90", color : "black"}
}
$scope.selectedCarObj = angular.fromJson($scope.selectedCar);
});
</script>
</body>
</html>
如果我换行:
$scope.selectedCarObj = angular.fromJson($scope.selectedCar);
收件人:
$scope.selectedCarObj = angular.fromJson({brand : "Ford", model : "Mustang", color : "red"});
它正在工作!
为什么我无法获得 {{selectedCarObj.brand }} 值?
在选择列表中,选项值为:
<option ng-repeat="(x, y) in cars" value="{"brand":";Fiat";,";model":"500","color":"white"}" class="ng-binding ng-scope">Fiat</option><!-- end ngRepeat: (x, y) in cars -->
有人可以帮我理解为什么它不起作用吗?
也许是 html 字符?!?
非常感谢。
【问题讨论】:
标签: angularjs json angularjs-ng-repeat ng-options angularjs-ng-options