2017-11-14 13 views
0

ng repeatを使用して作成されたダイナミックリストを使用しています。各項目にはクリックがあります。しかし、フォームを表示させるコンディションがあるアイテムはほとんどなく、フォームのサブミットは再びクリックされます。 ここに私のHTMLがあります。ネストされたng-click引数が未定義

<div> 
    <div class="dropdown"> 
    <span class="dropdown-toggle" data-toggle="dropdown">Services 
    <span class="caret"></span></span> 
    <ul class="dropdown-menu list-group"> 
     <li> 
      <div class="input-group"> 
     <input type="text" placeholder="Search" ng-model='dfilter.Name' class="form-control"> 
     </div> 
     </li> 
     <li class="divider"></li> 
     <li class= "service_list_li" ng-repeat="d in services | filter:dfilter" ng-click="hitDrupal(d.Name,d.endpoint,d.api)">{{ d.Name }}</li> 
    </ul> 
</div> 
<div> 
    <form name="dynamic_fields"> 
    <input type="text" ng-model="drupDynam.one" ng-if="drupal_dynamic1"> 
    <input type="text" ng-model="drupDynam.two" ng-if="drupal_dynamic2" > 
    <input type="submit" ng-disabled="dynamic_fields.$pending" ng-click="goDynamic(drupDynam)" value="Go!" ng-show="drupal_dynamic1"> 
    </form> 
</div> 
</div> 

そして、ここでJSです:

$scope.hitDrupal = function(Name,endpoint,api) 
{ 
    $scope.drupal_dynamic1 = false; 
    $scope.drupal_dynamic2 = false; 
    if (endpoint=='login') { 
    //Do something 
    } 
    else if (Name == 'New') { 
     $scope.drupal_dynamic1 = true; 
     $scope.goDynamic = function(drupDynam) 
     { 
      dynamic_api = api + '/' + drupDynam.one; 
      console.log(dynamic_api); 
      //Do Something 
     } 
    } 
else 
{ 
//Do Something 
} 
} 

だから、問題は私がhitDrupal機能のためのすべての引数を取得しています。すなわち名前、エンドポイント、およびAPIです。しかし、第2のngclickの引数、すなわちdrupDynamに対して未定義を得る。

私は、comleteオブジェクトの代わりに個々の変数を渡そうとしました。 ng-clickではなくng-submitを使用しました。 しかし、助けはありません。

答えて

2

テンプレートにdrupDynamが存在するため、範囲に含める必要があります。したがって、引数として渡す必要はありません。私は、次が正しくテンプレートにdrupDynam.onedrupDynam.two仕事ならば動作する必要があること、言う:

$scope.goDynamic = function() { 
    dynamic_api = api + '/' + $scope.drupDynam.one; 
    console.log(dynamic_api); 
} 

なし、その後、何かがdrupDynam初期設定でOKではない場合。あなたはそれを右のテンプレートで出力してみてください可能性がありますビューを結合2-ところで

<input type="submit" ng-disabled="dynamic_fields.$pending" ng-click="goDynamic(drupDynam)" value="Go!" ng-show="drupal_dynamic1"> 
drupDynam: {{drupDynam}} drupDynam.one: {{drupDynam.one}} 

drupDynamの値が範囲に変更された後、すぐに変更する必要があり、あなたが前にそれを確認できるようになりますので、クリックそれがうまくいかない場合は、コード内のdrupDynam割り当てを調べる必要があります。あなたはその価値をどこに置いていますか?

+0

最初の方法が機能しました。しかし、私の懸念は、なぜ議論が空でないのかということです。それは時計に関連するものであり、サイクルを適用しますか?いくつかの実装上の問題があります。ありがとうとにかく – ronit

+0

@ronitそれはseperatelly調べる必要があります。私にとっては、あなたが問題にしているコードからは分かりません。あなたがPlunker/fiddle/demoを作成すると、私はあなたのための調査をすることができます。 – dhilt

+0

No Probs ...とにかく... Thanxx – ronit

関連する問題