Добрый день,AngularJS несколько вариантов радио
В настоящее время мы пытаемся узнать AngularJS и хотя мы собирание некоторые довольно крутые коды мы не можем показаться, чтобы выяснить этот вопрос вне.
Мы хотим отобразить список вариантов продукта относительно выбранного продукта в раскрывающемся списке, здесь мы хотим отметить одну радиокнопку в каждой строке, но в тот момент, когда мы отмечаем один из переключателей он, кажется, выбирает все в каждом столбце.
Мы приложили наши фрагменты кода и скриншоты, если кто-то может нам помочь, мы бы очень признательны.
спасибо. Оригинал Plnkr http://embed.plnkr.co/bpMoLNnf4zs5VK4kx1JJ/preview
Оригинал HTML
<div class="form-group">
<h3>Product</h3>
</div>
<div class="form-group">
<div>
<select ng-model="formData.product" ng-options="product.name for product in products" style="color:#000;"></select>
</div>
<div ng-show="formData.product.name=='Petrol Lawnmower'">
<div ng-repeat="visualItem in visualItems">
<label for="">{{visualItem.name}}</label>
<input type="radio" name="{{visualItem.id}}" ng-model="formData.visualItems.one" ng-value="visualItem.one"/>
<input type="radio" name="{{visualItem.id}}" ng-model="formData.visualItems.two" ng-value="visualItem.two"/>
<input type="radio" name="{{visualItem.id}}" ng-model="formData.visualItems.three" ng-value="visualItem.three"/>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-xs-6 col-xs-offset-3">
<a ui-sref="{{formData.product.url}}" class="btn btn-block btn-info">
Next Section <span class="glyphicon glyphicon-circle-arrow-right"></span>
</a>
<a ui-sref="form.usage" class="btn btn-block btn-info">
<span class="glyphicon glyphicon-circle-arrow-left"></span> Previous Section
</a>
<br/>
</div>
</div>
Оригинал JS
// Products
$scope.products = [
{id: '1', name: 'Petrol Lawnmower' },
{id: '2', name: 'Electric Lawnmower'},
{id: '3', name: 'Petrol Chainsaw'},
{id: '4', name: 'Electric Chainsaw'},
{id: '5', name: 'Petrol Timmer'},
{id: '6', name: 'Electric Timmer'},
{id: '7', name: 'Etc'}
];
$scope.product = {
productItems: [{
Product: $scope.products[0]
}]
}
// Visual Test
$scope.visualItems = [
{ id:'1', name: 'Fuel Empty', one: 'red', two: 'amber', three: 'green'},
{ id:'2', name: 'Oil Empty', one: 'red', two: 'amber', three: 'green'},
{ id:'3', name: 'Spark Plug', one: 'red', two: 'amber', three: 'green'},
{ id:'4', name: 'Air Filter', one: 'red', two: 'amber', three: 'green'},
{ id:'5', name: 'Blade', one: 'red', two: 'amber', three: 'green'},
{ id:'6', name: 'Pull Start', one: 'red', two: 'amber', three: 'green'},
{ id:'7', name: 'Deck', one: 'red', two: 'amber', three: 'green'},
{ id:'8', name: 'Wheels', one: 'red', two: 'amber', three: 'green'},
{ id:'9', name: 'Handles', one: 'red', two: 'amber', three: 'green'},
{ id:'10', name: 'Throttle/Pull Cable', one: 'red', two: 'amber', three: 'green'},
{ id:'11', name: 'Primer Bulb', one: 'red', two: 'amber', three: 'green'},
{ id:'12', name: 'Grass Box', one: 'red', two: 'amber', three: 'green'},
{ id:'13', name: 'Fuel Pipe', one: 'red', two: 'amber', three: 'green'}
];
$scope.visualItem = {
visual: [{
VisualItem: $scope.visualItems[0]
}]
}
ОБНОВЛЕНО HTML
<div class="form-group">
<h3>Product</h3>
</div>
<div class="form-group">
<div>
<select ng-model="formData.product" ng-options="product.name for product in products" style="color:#000;"></select>
</div>
<div ng-show="formData.product.name=='Petrol Lawnmower'">
<div ng-repeat="visualItem in visualItems">
<label for="">{{visualItem.name}}</label>
<input type="radio" name="{{visualItem.id}}" ng-model="visualItem.one.isSelected" ng-value="visualItem.one"/>
<input type="radio" name="{{visualItem.id}}" ng-model="visualItem.one.isSelected" ng-value="visualItem.one"/>
<input type="radio" name="{{visualItem.id}}" ng-model="visualItem.one.isSelected" ng-value="visualItem.one"/>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-xs-6 col-xs-offset-3">
<a ui-sref="{{formData.product.url}}" class="btn btn-block btn-info">
Next Section <span class="glyphicon glyphicon-circle-arrow-right"></span>
</a>
<a ui-sref="form.usage" class="btn btn-block btn-info">
<span class="glyphicon glyphicon-circle-arrow-left"></span> Previous Section
</a>
<br/>
</div>
</div>
Обновлено JS
angular.module('formApp', ['ngAnimate', 'ui.router'])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('form', {
url: '/form',
templateUrl: 'form.html',
controller: 'formController'
})
.state('form.packaging', {
url: '/packaging',
templateUrl: 'form-packaging.html'
})
.state('form.usage', {
url: '/usage',
templateUrl: 'form-usage.html'
})
.state('form.product', {
url: '/product',
templateUrl: 'form-product.html'
})
.state('form.payment', {
url: '/payment',
templateUrl: 'form-payment.html'
});
$urlRouterProvider.otherwise('/form/packaging');
})
.controller('formController', function($scope) {
// Products
$scope.products = [
{id: '1', name: 'Petrol Lawnmower' },
{id: '2', name: 'Electric Lawnmower'},
{id: '3', name: 'Petrol Chainsaw'},
{id: '4', name: 'Electric Chainsaw'},
{id: '5', name: 'Petrol Timmer'},
{id: '6', name: 'Electric Timmer'},
{id: '7', name: 'Etc'}
];
$scope.product = {
productItems: [{
Product: $scope.products[0]
}]
}
// Visual
$scope.visualItems = [
{
id:'1',
name: 'Fuel Empty',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'2',
name: 'Oil Empty'
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'3',
name: 'Spark Plug'
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'4',
name: 'Air Filter',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'5',
name: 'Blade',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'6',
name: 'Pull Start',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'7',
name: 'Deck',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'8',
name: 'Wheels',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'9',
name: 'Handles',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'10',
name: 'Throttle/Pull Cable',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'11',
name: 'Primer Bulb',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'12',
name: 'Grass Box',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
},
{
id:'13',
name: 'Fuel Pipe',
one: {color: 'red', isSelected: 'false'},
two: {color: 'amber', isSelected: 'false'},
three: {color: 'green', isSelected: 'false'}
}
];
$scope.visualItem = {
visual: [{
VisualItem: $scope.visualItems[0]
}]
}
// we will store all of our form data in this object
$scope.formData = {};
// function to process the form
$scope.processForm = function() {
alert('awesome!');
};
});
Обновлено Plnkr http://plnkr.co/edit/Dve2jQJ4tHN0y8AUKT2Z
Спасибо Джареду за вашу помощь в этом, к сожалению, мы попробовали вашу идею, и она, похоже, не работает. Мы приложили наш последний фрагмент. Не могли бы вы просто рассмотреть, что мы нарушаем ваш код. –
Извините, я забыл приложить обновленный HTML, теперь это выглядит правильно? –
Даже с обоими обновлениями теперь он просто показывает пустой черный экран? –