2015-03-04 3 views
0

У меня есть два набора входов радио:Угловых двухсторонней привязки радио входов

<input type="radio" value="0" ng-model="domestic" ng-checked="domestic"> Domestic 
<input type="radio" value="1" ng-model="international" ng-checked="international"> International 

и:

<input type="radio" value="0" ng-model="domestic" ng-checked="domestic"> Verified 
<input type="radio" value="1" ng-model="international" ng-checked="international"> Unverified 

Независимо от того, какого входа в любом наборе я нажимаю Я хочу, чтобы изменить то же, в другом наборе соответственно.

Я написал это так, потому что я хочу, чтобы он работал в обоих направлениях.

Это правильный способ привязки? или есть лучший способ.

Thanks

ответ

1

Подумайте об этом с абстрагированной точки зрения. То, что вы сейчас делаете, привязывает два радиовхода к одному и тому же значению. Если вы хотите, чтобы оба радиовхода отображали одинаковое значение данных во всех случаях, то, что вы делаете, в порядке.

В противном случае вы всегда можете установить функцию ng-checked. Это было бы идеально, если бы у вас были другие соображения, которые вы хотели сделать. Что-то вроде:

<input type="radio" value="0" ng-model="domestic" ng-checked="domesticChecked()"> Domestic 

Использование:

$scope.domesticChecked = function(){ 
    // you could do other checks here as well if it needed to be more complicated 
    return (domestic && someOtherConsideration) ? true : false 
} 

Короче говоря, если все сценарии в приложении представляют 1: значение объединения 1 между этими двумя флажками (если он установлен, то другой всегда проверено и наоборот), тогда у вас все хорошо.

+0

большое спасибо за это. в некоторых аспектах есть много информации об угловой лучшей практике, а в других аспектах почти ничего. Спасибо за быстрый ответ. Я буду учитывать метод функции, так как мне может потребоваться рассмотреть вещи, поскольку мои элементы очень связаны. – Aiden

0

Я думаю, что вы ищете

<input type="radio" value="0" ng-model="domestic" name="x"> Domestic 
<input type="radio" value="1" ng-model="domestic" name="x"> International 


<input type="radio" value="0" ng-model="domestic" name="y"> Verified 
<input type="radio" value="1" ng-model="domestic" name="y"> Unverified 

Демо: Fiddle

Вам нужно присваивать имена элементам радио, так что они могут быть сгруппированы, а затем, если вы используете один и тот же ng-model вам все должно быть в порядке.

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