2016-01-26 54 views
1

我有什麼基本上是一個無線電類型選擇,而是因爲我希望它看起來更像是一個選擇柵網,我選擇做一個輸入型按鈕,而不是和觸發點擊的功能,但我有一個問題。 ng-model不會將我點擊的按鈕的值綁定到控制器部分,我知道它可以很好地用作單選按鈕。AngularJS - ngmodel和輸入型按鈕

什麼是解決這個問題的最快方法?我假設有一個更簡單的方法比重新定義單選按鈕的CSS ...特別是因爲它的全部完成,除了點擊上的值與變量本身。

有問題的部分:

 <div class="aquipartners" id="aquipartnersID">    
      <input ng-repeat="partner in partners" align="center" type = 'button' class = "aquipartnernamebutton" id='aqui{{partner.name.PT}}' value='{{partner.name.PT}}' ng-model='newaquisubmission.part' onclick ='partnerselect()'> 
      </input> 
     </div> 

而且對JS的一面:

function partnerselect(){ 


     var scopepartnerbutton = $('#subtitleid').scope().newaquisubmission.part; 

     alert(scopepartnerbutton); 

     if(scopepartnerbutton !== ""){ 

      //the stuff I want to do, I added the if as a safeguard while I program everything 
     } 

    }; 
+1

使用'NG-click'而不是' onclick'。 – georgeawg

+0

沒有意義。當你的模型和價值不同時,你期待'ng-model'做什麼?爲什麼這裏涉及jQuery或'onclick'? – charlietfl

+0

對不起,我想它添加我點擊按鈕的值,值=「{{partner.name.PT}}」對NG-模型=「newaquisubmission.part」控制變量 也許我接近這是錯誤的... – Kronephon

回答

1

爲@georgeawg說,採用NG-點擊。請確保您有這個控制器上:

$scope.partnerselect = partnerselect 

和的PartnerSelect應聲明如下:

function partnerselect(value) { 
if($scope.newaquisubmission.part){ 
    $scope.newaquisubmission.part = value; //Assuming this is what you want to do.. 
}  
} 

在您的看法:

<div class="aquipartners" id="aquipartnersID">    
     <input ng-repeat="partner in partners" align="center" type = 'button' class = "aquipartnernamebutton" id='aqui{{partner.name.PT}}' value='{{partner.name.PT}}' ng-click ="partnerselect(partner.name.PT)"> 
     </input> 
    </div> 
+0

完美的工作,雖然我遇到了一個相對較小的問題,它無法找到變量$範圍。我設法通過使用scope()方法來解決它,但我認爲這不是最好的方法。我可能在某處觸發了這個錯誤,你知道它通常是什麼嗎?在此先感謝 – Kronephon

+0

說實話,我不知道。我對角度也很陌生。它一定是你編碼的方式。也許你正在做這樣的:module.controller( 「myController的」,[ 「$範圍」, 「$ rootScope」,myController的]),同時一些宣佈它是這樣的:module.controller( 「myController的」,[「$範圍」, 「$ rootScope」,函數(){ //$scope.isAvailable =真}]) –

+0

更好地讓專家解釋這些東西。無論如何,請對我的回答表示讚賞:D –