我有一个示例anjularjs示例,它拉出了sku详细信息数组,显示选择下拉列表中的价格和名称。 现在我在下拉列表中选择了任何选项,它显示了sku名称和价格。
下面是我的选择标签,现在显示,sku名称带价格。
<select ng-model="selectedItem">
<option ng-repeat="item in skulist.sku" value="{{item.price + ' - ' + item.name}}">{{item.price + ' - ' + item.name}}</option>
</select>
以下是我的skulist数据:
skulist.sku[0].name="First sku";
skulist.sku[0].price = Rs.100;
skulist.sku[1].name="Second sku";
skulist.sku[1].price = Rs.200;
skulist.sku[2].name="Third sku";
skulist.sku[2].price = Rs.300;
所以这里我的要求是下拉列表应包含sku名称和价格,但是一旦选择了值,则只显示sku名称。
答案 0 :(得分:0)
您可以将sku列表创建为复杂对象。
$scope.skulist = [{"name": "First", "price": "Rs.100"},
{"name": "Second", "price": "Rs.200"},
{"name": "Third", "price": "Rs.300"}
];
在您的ng-repeat中,您可以访问:
<select ng-model="selectedItem">
<option ng-repeat="item in skulist" value="{{item.price + ' - ' + item.name}}">{{item.price + ' - ' + item.name}}</option>
</select>
希望它可以帮到你。
答案 1 :(得分:0)
您应该在select中使用ng-options。这样您就可以动态获取选项。您还可以通过向选择添加ng-change事件来跟踪所选项目。
您的问题:显示名称而不是名称价格。您必须创建另一个选项并将该选项的文本设置为项目名称。
我已经创建了一个简单的小提琴供您参考。希望这能让你越来越接近解决方案
https://jsfiddle.net/YameenYasin/9a5nfugo/44/
<div ng-controller="myController">
<select ng-model="selectedItem"
ng-options="item as item.price + ' ' + item.name for item in skulist" ng-change="updateText(selectedItem.name)"
>
<option value=''>{{selectedValue}}</option>
</select>
</div>
var app = angular.module('app',[]);
app.controller("myController",function($scope){
$scope.skulist = [{"name": "First", "price": "Rs.100"},
{"name": "Second", "price": "Rs.200"},
{"name": "Third", "price": "Rs.300"}
];
$scope.selectedValue = '';
$scope.updateText = function(name){
$scope.selectedValue = name;
$scope.selectedItem = $scope.selectedValue;
}
});