【问题标题】:How to count characters in UI-Angular and Bootstrap如何在 UI-Angular 和 Bootstrap 中计算字符数
【发布时间】:2026-01-21 05:55:01
【问题描述】:

我有一个使用 Angular 和 Angular UI 构建的应用程序。我正在尝试计算多个手风琴中的字符,如 plunker 中所示。我的代码只返回前两个字符,然后什么都没有?

我做错了什么吗?

笨蛋是:Example code

app.js

$scope.what=[];
$scope.why=[];

Object.defineProperty($scope, 'characters', {
    get() {
        return $scope.what.length + $scope.why.length;
    }
});

HTML:

{{characters}} 

但就像我说的,这只返回前两个字符?

【问题讨论】:

  • 因为whatwhy 是数组。您将文本存储在what[$index],但阅读what

标签: javascript angularjs twitter-bootstrap


【解决方案1】:

为什么和什么是数组,如果你想统计这些数组中的所有字符,试试:

Object.defineProperty($scope, 'characters', {
        get() {
            return $scope.what.join('').length + $scope.why.join('').length;
        }
});

【讨论】:

  • 嗨 Thierry,上面的代码在 IE 和 Safari 中会导致问题 - 在 Safari 中我得到 SyntaxError: Unexpected token '(' (anonymous function)controllers.js:38 angular.js:4373
  • @Sole controllers.js 第 38 行的确切代码是什么?我想是不是 Safari 不支持 js 函数?
  • 它是:Object.defineProperty($scope, 'characters', {
  • Object.defineProperty 在 IE8 中不起作用。可能是你的 Safari 版本太旧了?有关解决方法,请参阅 *.com/questions/17271224/…
【解决方案2】:

您可以编写一个带有 for 循环的函数来计算 whatwhy 的索引,然后将其放在 AngularJS 中。

【讨论】:

    最近更新 更多