我正在使用Angular.js的第一步,我面临一个小问题,我不知道如何处理Angular。我知道很多jQuery方法可以解决它,但我确信它可能存在一种Angular方式:
首先,我有一个选择元素集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;
}]);
我可以在option元素中设置一个data-plant
属性,并通过jQuery获取所选属性,但我正在尝试避免使用这种解决方案。你怎么处理这个?
注意:考虑到我只是想在我按下按钮时选择option
并对API执行不同的get
请求。服务。
提前致谢。
答案 0 :(得分:2)
传递ngclick中的值:
<button ng-click='loadTowers(currentPlant)'>
然后在工厂args中添加它:
o.towers = function(currentPlant){
}