如何计算大括号中的 angular 变量

How to calculated angular variable in braces

我有这个代码:

    <pre>totalItems: {{vm.pagination.totalItems}}</pre>
    <pre>items-per-page: {{vm.pagination.itemsPerPage}}</pre>
    <pre>Total: Math.ceil({{vm.pagination.totalItems / vm.pagination.itemsPerPage}})</pre>

输出:

我正在使用 Math.ceil() 所以答案应该是 11 但我没有得到如下正确答案:

如何计算大括号中的 angular 值?请帮助并提前致谢。

最好的方法是创建一个作用域函数:

<pre>Total: {{calculateTotal(vm.pagination.totalItems, vm.pagination.itemsPerPage)}}</pre>

然后将函数添加到作用域中:

$scope.calculateTotal = function(totalItems, itemsPerPage) {
  return Math.ceil(totalItems/itemsPerPage);
};

angular.module('myapp', [])
  .controller('foo', function($scope) {

var vm = this;

vm.w = {
pagination: {
 totalItems: 258,
 itemsPerPage: 25
}
}

init();

return vm.w;

function init() {
 vm.w.pagination.calculation = Math.ceil(vm.w.pagination.totalItems / vm.w.pagination.itemsPerPage)
}

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myapp">
<div ng-controller="foo as vm">

 <pre>totalItems: {{vm.pagination.totalItems}}</pre>
    <pre>items-per-page: {{vm.pagination.itemsPerPage}}</pre>
    <pre>Total: {{vm.pagination.calculation}}</pre>


</body>

如果需要在模板中使用Math,则需要将其公开。所以在你的控制器中你会设置

vm.Math = Math;

然后您可以像这样在模板中使用它:

<pre>Total: {{ vm.Math.ceil(vm.pagination.totalItems / vm.pagination.itemsPerPage }})</pre>

但是,与其在模板中进行计算,不如在控制器中公开一个计算值的函数:

vm.getTotalPageCount = function() {
    return Math.ceil(vm.pagination.totalItems / vm.pagination.itemsPerPage);
};

并在您的模板中使用它:

<pre>Total: {{ vm.getTotalPageCount() }})</pre>