Подтвердить что ты не робот

Как назначить логическое значение модели

У меня есть следующий вид с двумя входными переключателями:

<label>
    <input type="radio" name="test" ng-model="fooBar" 
        value="true" ng-change="logConsole()">
    True
</label>

<label>
    <input type="radio" name="test" ng-model="fooBar" 
        value="false" ng-change="logConsole()">
    False
</label>

И мой контроллер выглядит так:

//Initialization
$scope.fooBar = false;

$scope.logConsole = function () {
    console.log("Value is : " + $scope.fooBar);
    console.log("Type is : " + typeof $scope.fooBar); //Always displays 'string'
};

Моя проблема заключается в том, что когда пользователь выбирает один из переключателей, тип модели fooBar всегда является строкой, то есть значением является либо строка "true", либо строка "false" - я хочу тип, который должен быть логическим истинным значением или логическим ложным значением. Как я могу сохранить логическое значение (изнутри представления) на модель?

EDIT: Я просто попробовал это, и он все еще не работает. Для атрибута value я передал функцию, которая вернет логическое значение true или false, что-то вроде этого:

<input type="text" value="{{getBoolean('true')}}....>

$scope.getBoolean = function (value) {   if (value === 'true') return true;   else возвращает false; };

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

4b9b3361

Ответ 1

В одном из комментариев документации говорится:

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

<input ng-model="foo" type="radio" value="true"> 

может не работать, но

<input ng-model="foo" ng-value="true" type="radio"> 

делает.