Как назначить логическое значение модели
У меня есть следующий вид с двумя входными переключателями:
<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;
};
По-прежнему создается строка, когда переключатели выбраны...
Ответы
Ответ 1
В одном из комментариев документации говорится:
Пока значение ng не задокументировано, это полезная директива, особенно когда вы привязываетесь к логическому значению.
<input ng-model="foo" type="radio" value="true">
может не работать, но
<input ng-model="foo" ng-value="true" type="radio">
делает.