我尝试只显示已过滤数组的一个特定属性。 有没有办法在我的控制器中不使用自定义方法显示属性? 我的意思是直接在视图中?
我的order.options
数组:
[
{value: '0', text: 'random'},
{value: '1', text: 'names'},
{value: '2', text: 'ages'}
]
我的观点:
<span>{{order.options | filter:order.value}}</span><!-- I need help here -->
<select ng-model="order.value">
<option value="{{option.value}}" ng-repeat="option in order.options">{{option.text}}</option>
</select>
如果用户通过更改选择来排序列表,我想在某处显示所选值的文本(order.options[INDEX].text
中的值)
例如,如果用户在选择中选择“随机”,则在选择之前的跨度中显示随机。
我必须在我的选项中使用不同的值和文本,因为我按照值排序选择旁边的列表(whis是列表项的属性)
答案 0 :(得分:2)
var app = angular.module('app', []);
app.controller('homeCtrl', function($scope) {
$scope.order = {
options:
[{
value: '0',
text: 'random'
}, {
value: '1',
text: 'names'
}, {
value: '2',
text: 'ages'
}]
};
//set default value for selectedOrder
$scope.selectedOrder = $scope.order.options[0];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="homeCtrl">
<span>{{selectedOrder.text}}</span>
<!-- I need help here -->
<select ng-model="selectedOrder" ng-options="option.text for option in order.options">
</select>
</div>
</div>
答案 1 :(得分:0)
为什么不直接使用所选选项作为模型值?
<select ng-model="selectedOrder">
<option ng-value="option" ng-repeat="option in order.options">{{option.text}}</option>
</select>
然后,您可以独立使用 selectedOrder.value 和 selectedOrder.text ,直接在视图中,无需任何控制器方法调用。