input & ng-repeat
HTML
<h1>Select </h1>
<div ng-app="">
<b>No function way + callback on changed</b>
<div ng-controller="OrderCtrl">
<div ng-repeat="item in items" style="text-indent: 30px">
<div class="radio">
<label>
<input type="radio" name="item" ng-value="item" ng-model="$parent.selected" ng-change="changed()"/>{{item.name}} +{{item.price}} $.
</label>
</div>
</div>
Your choice: {{selected.name}}
<br/>
Price: {{selected.price}}
</div>
<hr/>
<b>Ng-Click</b>
<div ng-controller="OrderCtrl">
<div ng-repeat="item in items" style="text-indent: 30px">
<div class="radio">
<label>
<input type="radio" name="item" ng-click="selectItem(item)" />{{item.name}} +{{item.price}} $.
</label>
</div>
</div>
Your choice: {{selected.name}}
<br/>
Price: {{selected.price}}
</div>
</div>
JavaScript
OrderCtrl = function ($scope) {
$scope.items = [{
name: 'None',
value: "no",
price: 0,
checked: true
}, {
name: 'Black',
value: "black",
price: 99,
checked: false
}, {
name: 'White',
value: "white",
price: 99,
checked: false
}, {
name: 'Barhat',
value: "barhat",
price: 49,
checked: false
}, {
name: 'Barhat',
value: "cream",
price: 49,
checked: false
}]
$scope.selected = $scope.items[0];
$scope.selectItem = function(item) {
$scope.selected = item;
}
$scope.changed = function() {
console.log('changed', $scope.selected)
}
}