2017-11-14 20 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 그러나 두 번째 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 초기화와 확인이 아니라면. 당신은 바로 템플릿에 출력하려고 할 수 있습니다 :보기를 결합 양방향으로

<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