gpt4 book ai didi

AngularJS Binding : Dropdown binds string, 需要数字代替

转载 作者:行者123 更新时间:2023-12-03 08:21:37 24 4
gpt4 key购买 nike

我有一个下拉菜单,允许用户选择一个数字。

<body ng-app="myApp">
<div ng-controller="MyCtrl">
<select ng-model="selectedNum" ng-change="numberSelected()">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
</select>
</div>
</body>

回到我的 Controller 中,我可以通过 $scope.selectedNumber 引用选定的值
angular.module('myApp', []).controller('MyCtrl', function($scope) {

$scope.selectedNum = 10;

$scope.numberSelected = function(){
alert(typeof $scope.selectedNum); //alerts string, need this to be a number
}
});

Working Fiddle

我是 Angular 的新手——来自 jQuery 我习惯于显式调用 Number($('#mySelect').val()) 但在 Angular 中,值会自动绑定(bind)到 $scope。

我的问题:有没有办法强制 $scope.selectedNum 成为类型号?在我的实际项目中,我使用 selectedNum 进行一些计算。我想我可以在不同的地方使用 Number(..) 或 parseInt(..) 但我认为这可能会有点重复和困惑。

最佳答案

问题是 te 期权值(value)中数据在 HTML 中 - 所以它是 字符串 在你的代码中。如果您使用 ,您可能会解决您的问题。数字数组 ng 选项 指示:

在您的 Controller 中,您可以添加:

$scope.nums = [10,20,30,40,50];

在您看来:
<select 
ng-model="selectedNum"
ng-change="numberSelected()"
ng-options="n for n in nums">
</select>

现在您将在 Controller 功能中获得一个数字:
$scope.numberSelected = function(){
console.log(typeof $scope.selectedNum, $scope.selectedNum);
}

这是一个工作 fiddle : http://jsfiddle.net/5aHRL/

关于AngularJS Binding : Dropdown binds string, 需要数字代替,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21449821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com