2016-01-26 2 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

Используйте 'нг-click' вместо' onclick'. – georgeawg

+0

не имеет смысла. Что вы ожидаете от 'ng-model', если она отличается от модели? почему здесь используется jQuery или 'onclick'? – charlietfl

+0

К сожалению, я хочу добавить значение кнопки, которую я нажал, значение = '{{partner.name.PT}}' к переменной контроллера на ng-model = 'newaquisubmission.part' Возможно, я приближаюсь это неправильный путь ... – Kronephon

ответ

1

, как @georgeawg сказал, использование нг-клик. убедитесь, что у вас есть это на контроллере:

$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. Мне удалось обойти это, используя метод scope(), но я предполагаю, что это не лучший подход. Вероятно, у меня есть ошибка где-то, что вызывает это, не знаете ли вы, что это такое? Заранее спасибо – Kronephon

+0

Честно говоря, я не знаю. Я совершенно новый и угловатый. Это должно быть так, как вы кодируете. Возможно, вы делаете это так: module.controller («myController», [«$ scope», «$ rootScope», myController]), в то время как некоторые объявляют это следующим образом: module.controller («myController», ["$ scope "," $ rootScope ", function() { //$scope.isAvailable = true}]) –

+0

Лучше позвольте экспертам объяснить эти вещи. Во всяком случае, проявляйте некоторую признательность моему ответу: D –

Смежные вопросы