2016-09-12 8 views
1

私は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> 

で設定した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を取得し、サービスを通じてそのAPI`in機能に異なるgetリクエストを行いたいテイクアカウント。

ありがとうございます。

答えて

2

はngclickに値を渡します。

 <button ng-click='loadTowers(currentPlant)'> 

そして、工場出荷時の引数でそれを追加します。

o.towers = function(currentPlant){ 

    } 
関連する問題