sna*_*ggs 6 javascript angularjs
这是我的HTML:
<div ng-controller = "myCntrl">
<pre>floor 1: {{Math.floor( value ) }}</pre>
<pre>floor 2: {{value }}</pre>
<pre>floor 3: {{value | number : 0 }}</pre>
<pre>floor 1 from controller: {{newValue }}</pre>
</div>
Run Code Online (Sandbox Code Playgroud)
调节器
app.controller('myCntrl', function ($scope) {
$scope.value = 1233.8435;
$scope.newValue = Math.floor(1233.8435);
});
Run Code Online (Sandbox Code Playgroud)
输出:
floor 1:
floor 2: 1233.8435
floor 3: 1,234
floor 1 from controller: 1233
Run Code Online (Sandbox Code Playgroud)
一般来说,我正在寻找合适的方法1233.
我不想在控制器中调用新方法.
为什么Math.floor没有回报?
谢谢,
演示小提琴
Ser*_*hiv 18
在这种情况下,AngularJS <span>{{value}}</span>(表达式)是当前的简写<span ng-bind="value"></span>并ng-bind作用于当前scope.
您当前的范围是由myCntrlso 定义的范围,ng-bind="value"评估为$scope.value.
AngularJS无法区分全局Math命名空间$scope.Math,因此它将其视为任何其他作用域表达式.
我建议不要使用$scope.Math=Math;.
正确的方法是使用过滤器:
angular.module('myApp',[]).filter('floor', function(){
return function(n){
return Math.floor(n);
};
});
Run Code Online (Sandbox Code Playgroud)