Я делаю первые шаги с помощью Angular.js, и у меня есть небольшая проблема, о которой я не знаю, как бороться с Angular. Я знаю много способов JQuery для ее решения, но я уверен, что он может существует Угловое путь:Получение внешних переменных внутри фабрики Angular.js
Во-первых, у меня есть выбора набора элементов с currentPlant
в ng-model
<select class="form-control" name="planta" ng-model='currentPlant' ng-options='plant.name for plant in plants' >
</select>
распечатать текущее имя, заголовок страницы, я вижу, что этот элемент обновляется, когда я изменяю выбранное значение, поэтому я уверен, что currentPlant
правильно обновляется.
<h1>{{ currentPlant ? currentPlant.name : 'Seleccione una planta'}}</h1>
Теперь у меня есть следующие кнопки:
<button class='btn btn-primary' ng-click='loadTowers()'>
Cargar torres
</button>
Когда кнопка нажата, функция loadTowers
выполняется, и теперь, когда начинаются проблемы. Я поставил функцию loadTowers
в контроллере таким образом:
$scope.loadTowers = plants.towers;
plant
является угловой службой, которая реализовала функцию towers
внутри. Мне нужно получить значение currentPlant
внутри этой функции. Посмотрите:
.factory('plants', ['$http',function($http){
var o = {
plants: [],
towers : []
};
o.towers = function(){
var id = ¿?; // I NEED SET THIS VARIABLE WITH THE currentPlant.id VALUE
$http.get('/api/v1/plants/'+id+'/towers')
.success(function(data){
angular.copy(data, o.towers);
})
}
return o;
}]);
Я мог бы установить data-plant
атрибут в элементе опции, и получить выбранный с помощью JQuery, но я стараюсь избегать такого рода решений. Как вы справляетесь с этим?
ПРИМЕЧАНИЕ: Учитывать, что я просто хочу получить option
выбранный при нажатии на кнопку и сделать различные get
запросы к функции API`in того через службу.
Заранее спасибо.