当前位置: 首页 > 知识库问答 >
问题:

如何在Angular.js中解析Int

姬英耀
2023-03-14

可能,这是最简单的事情,但是我不能在angular中将一个字符串解析为Int..

我想做的是:

<input type="text" ng-model="num1">
<input type="text" ng-model="num2">

Total: {{num1 + num2}}

如何对这些num1和num2值求和?

谢谢!

共有3个答案

徐智渊
2023-03-14
<input type="number" string-to-number ng-model="num1">
<input type="number" string-to-number ng-model="num2">

Total: {{num1 + num2}}

js中:

parseInt($scope.num1) + parseInt($scope.num2)
司空和悌
2023-03-14

选项1(通过控制器):

angular.controller('numCtrl', function($scope, $window) {
   $scope.num = parseInt(num , 10);
}

选项2(通过自定义过滤器):

app.filter('num', function() {
    return function(input) {
       return parseInt(input, 10);
    }
});

{{(num1 | num) + (num2 | num)}}

选项3(通过表达式):

首先在控制器中声明以下内容:

$scope.parseInt = parseInt;

然后:

{{parseInt(num1)+parseInt(num2)}}

选项4(从raina77ow开始)

{{(num1-0) + (num2-0)}}
殷承恩
2023-03-14

您不能(至少目前)在角度表达式中使用parseInt,因为它们不是直接求值的。引用文档:

Angular不使用JavaScript的eval()来计算表达式。相反,Angular的<code>$parse</code>服务处理这些表达式。

角度表达式不能访问全局变量,如< code>window 、< code>document或< code>location。这种限制是有意的。它防止对全局状态的意外访问——这是细微错误的常见来源。

因此,您可以在控制器中定义total()方法,然后在表达式中使用它:

// ... somewhere in controller
$scope.total = function() { 
  return parseInt($scope.num1) + parseInt($scope.num2) 
}

// ... in HTML
Total: {{ total() }}

尽管如此,对于像数字相加这样简单的操作来说,这似乎是相当庞大的。另一种方法是用< code>-0 op转换结果:

Total: {{num1-0 + (num2-0)|number}}

...但这显然不会解析 Int 值,只会将它们转换为数字(如果此强制转换导致 NaN|数字过滤器会防止显示 null)。因此,请选择适合您特定情况的方法。

 类似资料:
  • 问题内容: 可能这是最简单的事情,但是我无法以角度将字符串解析为Int。 我正在尝试做的是: 如何求和这些num1和num2值? 谢谢! 问题答案: 您不能(至少目前)不能使用内部角度表达式,因为它们不会直接求值。引用 文档 : Angular不使用JavaScript 来评估表达式。相反,Angular的服务处理这些表达式。 角表达式不必访问全局变量喜欢 ,或。此限制是有意的。它可以防止意外访问

  • 问题内容: 我正在使用angular的请求,该请求成功返回包装在函数中的json: 如何访问/解析返回的函数包装的JSON? 问题答案: 更新:从Angular 1.6开始 您不能再使用JSON_CALLBACK字符串作为占位符来指定回调参数值应放在何处 您现在必须像这样定义回调: 通过更改/访问/声明参数,默认为 注意:您还必须确保将URL添加到受信任/白名单中: 或通过以下方式明确信任: 被弃

  • 问题内容: 我是Angular.js的新手,并且阅读我知道Angular没有诸如tap,doubletap等事件。我试图与Hammer.js结合使用而没有成功。 要点代码 现在我已经添加到我的html文件中 但是,当我尝试在我的html中使用它时,它不起作用。 我尝试过 没有人可以解决这个麻烦吗? 问题答案: 快去 将Hammer.js和jquery.hammer.js添加到您的解决方案中。使用J

  • 问题内容: 我有指令,它是带有后退按钮的网站标题,我想单击可返回到上一页。我如何以有角度的方式做到这一点? 我努力了: 这是指令js: 但什么也没发生。我查看了有关$ location 的angular.js API,但未找到有关后退按钮或的任何信息。 问题答案: 您需要在指令中使用链接函数: 参见jsFiddle。

  • 问题内容: 我在s3中有很多gzip日志文件,其中有3种类型的日志行:b,c,i。我和c都是单层json: 类型b是深度嵌套的json。我碰到这个要点,谈论要编译一个罐子来完成这项工作。由于我的Java技能还不算出色,因此我真的不知道该怎么做。 由于类型i和c并不总是相同的顺序,因此很难在生成正则表达式中指定所有内容。Pig是否可以处理JSON(在gzip文件中)?我正在使用在Amazon Ela

  • 问题内容: 我想创建一个新闻应用程序,并且已将newsapi.org用作源。 我正在尝试获取Http库提供的JSON数据。 我在下面提供了完整的代码。 它不会给我任何错误,但不会加载任何数据,当我打印数据时,它可以打印所有内容,但无法显示。 我不是什么问题,但是我所有的项目都已停止解决此问题。 我正在寻找此代码的解决方案,因为它不起作用。 网络助手: 问题答案: 问题在于显示文章。yaa也正如@I