2016-08-25 29 views
8

我用一個簡單的按鈕打開了Ionic + Angular應用程序中的模態。和按鈕後正確顯示一個模式模板點擊:參數從Ionic模態函數調用後搞砸了

<ion-modal-view> 
    <ion-header-bar> 
    <h1 class="title">Popular tags</h1> 
    <div class="buttons"> 
     <button class="button button-clear button-stable" ng-click="closePopularForm()">Close</button> 
    </div> 
    </ion-header-bar> 
    <ion-content> 
     <div class="list"> 
     <div class="item-divider text-center"> 
      Select a tag to follow. 
     </div> 
     <label class="item"> 
     <button class="button button-balanced" ng-click="addPopularTag('china')">China</button> 
      <button class="button button-balanced" ng-click="addPopularTag('uk')">United Kingdom</button> 
      <button class="button button-balanced" ng-click="addPopularTag('us')">United States</button> 
     </label> 
     </div> 
    </ion-content> 
</ion-modal-view> 

正如你可以看到模式包含3個按鈕,每個按鈕調用相同的功能,但使用不同的參數。我有包含該函數此控制器:

app.controller('HomeCtrl', function($scope, $ionicSideMenuDelegate, $ionicModal) { 

    $ionicModal.fromTemplateUrl('add-popular.html', { scope: $scope }).then(function(modal) { 
     $scope.modalPopular = modal; 
    }); 

    $scope.closePopularForm = function() { 
     $scope.modalPopular.hide(); 
    }; 

    $scope.openPopularForm = function() { 
     $scope.modalPopular.show(); 
    }; 

    $scope.addPopularTag = function(poptag) { 
     console.log(poptag); 
     console.log('pop form submited '+poptag); 
    }; 
}); 

的問題是,當點擊在模態爲準按鈕,功能addPopularTag被調用與所述第一按鈕(在這種情況下china)的參數。我檢查了按鈕的html源代碼,並且它們使用不同的參數正確呈現。

Here is a reproduction of the issue in Codepen. 您可以在控制檯中看到它。

回答

2

更換

<label class="item"> 
    <button class="button button-balanced" ng-click="addPopularTag('china')">China</button> 
    <button class="button button-balanced" ng-click="addPopularTag('uk')">United Kingdom</button> 
    <button class="button button-balanced" ng-click="addPopularTag('us')">United States</button> 
</label> 

<button class="button button-balanced" ng-click="addPopularTag('china')">China</button> 
<button class="button button-balanced" ng-click="addPopularTag('uk')">United Kingdom</button> 
<button class="button button-balanced" ng-click="addPopularTag('us')">United States</button> 

我不知道該標籤做什麼,雖然

+0

這工作。謝謝。不過,我仍然不明白爲什麼標籤標籤搞亂了函數調用。 – neptune

+0

我覺得'