【发布时间】:2016-03-09 22:10:05
【问题描述】:
目前在我的网站上有这个,但它不能正常工作:
这个想法是当您选择按钮(单选按钮)时,按钮上方的标题会更改为相应的值。例如应该是这样的:
这是我目前的代码:
<fieldset ng-repeat="modifier in modifiers" ng-if="modifier.type.value === 'Single' && modifier.title === 'Metal Colour'">
<div class="row">
<div class="col-md-12 main-label">
<span>{{ modifier.title }}:</span>
<span class="result">{{ title }}</span>
<span class="price">({{ price }})</span>
</div>
<div class="col-md-12">
<ul>
<li ng-repeat="variation in modifier.variations" >
<input type="radio" id="{{ variation.id }}" value="{{ variation.id }}" name="{{ modifier.id }}" ng-model="metalColour" ng-mod="{{ modifier.id }}" ng-title="{{ variation.title }}" ng-price="{{ variation.mod_price }}" class="singles" ng-checked="$index === 0" ng-click="isSelected($event)" ng-init="triggerClick()" />
<label class="radio colour" ng-class="variation.title === 'Yellow Gold' || variation.title === 'Geel Goud' ? 'yellow' : 'white' " for="{{ variation.id }}"> <span class="sr-only">{{ variation.title }}</span>
</li>
</ul>
</div>
</div>
</fieldset>
(此代码随后在我的视图中复制为“金属克拉”)
然后在我的控制器中:
$scope.isSelected = function (obj) {
$scope.$index = 1;
var getObj = obj.target,
getTitle = $(getObj).attr('ng-title'),
getPrice = $(getObj).attr('ng-price');
$scope.title = getTitle;
$scope.price = getPrice;
//console.log($(getObj).attr('ng-title'))
}
$scope.triggerClick = function () {
$timeout(function() {
$(':checked').trigger('click');
}, 100);
}
【问题讨论】:
标签: angularjs scope radio-button