Поэтому на моей странице у меня есть данные, которые выводятся как:
var firststep = 1;
var secondstep = 2;
var thirdstep = 3;
var fourstep = 4;
var firststep = 1;
var secondstep = 2;
var thirdstep = 3;
var fourstep = 4;
Значения фактически выводятся сервером, однако мне нужно повторно использовать значения независимо. Я могу передать дополнительное значение, например:
var category = flight;
но остальные значения, как указано выше.
Например, я пытаюсь использовать несколько ползунков, но два ползунка используют последние JS-вары, я передаю их через:
$scope.first[1]=firststep;
$scope.first[2]=secondstep;
$scope.first[3]=thirdstep;
$scope.first[4]=fourstep;
однако не могу понять, как я могу справляться с несколькими ситуациями, использующими одни и те же вары.
Если вы используете несколько слайдеров с одинаковыми именами переменных, вы должны перенести эти переменные в объект/модель.
например, в области контроллера
$scope.default_values = {
firststep: 1,
secondstep: 2,
thirdstep: 3,
fourthstep: 4,
};
$scope.slider_1_values = angular.copy($scope.default_values);
$scope.slider_2_values = angular.copy($scope.default_values);
а затем в вашем представлении/контроллере вы используете соответствующие объекты slider_1_values или slider_2_values. вы можете использовать ng-model = "slider_1_values", чтобы использовать для ввода в качестве модели определенный объект.
Я думаю, что лучший вариант в вашем случае - превратить слайдер в "директиву", чтобы вы могли повторно использовать слайдер с разными переменными, назначив ему другую модель.
<custom-slider ng-model="slider_1_values"></custom-slider>
<custom-slider ng-model="slider_2_values"></custom-slider>
app.directive('customSlider', function() {
return {
"restrict": "E",
"templateUrl": "yourslider_theme.html",
"controller": function($scope) {
//depending on the ng-model="" your
$scope.values now contain a different set of same variables
},
"link": function($scope, $element, $attr) {
$scope.values = $scope[$attr['ngModel']];
}
};
});