javascript - 在 Angular Controller 中定义常量的最佳方法是什么?

标签 javascript angularjs controller constants

我目前将常量放在 $scope 上。我不认为这是最好的方法,因为任何人都可以使用他们的 JS 控制台访问范围。

在 Angular 中定义常量的最佳方法是什么?

var app = angular.module('app', []);

app.controller('calculatorController', function($scope) {
    $scope.values = [];

    $scope.CONSTANTS = {
        ERROR_MESSAGES: {
            NOT_INTEGER: "One of the values input was not a number!"
        }
    };

    $scope.add = function () {
        var calculatedValue = 0;
        for (var i = 0; i <= $scope.values; i++) {
            if (typeof $scope.values[i] === 'string' || $scope.values[i] instanceof String) {
                alert($scope.CONSTANTS.ERROR_MESSAGES.NOT_INTEGER);
            }

            calculatedValue += $scope.values[i];
        }
        return calculatedValue;
    }
});

最佳答案

只需将其设置为 controller 回调中的变量(如果使用 TypeScript 或 ES2015+ JavaScript,则将其设置为 const):

var app = angular.module('app', []);

app.controller('calculatorController', function($scope) {
    var ERROR_MESSAGES = {
        NOT_INTEGER: "One of the values input was not a number!"
    };

    $scope.values = [];

    $scope.add = function () {
        var calculatedValue = 0;
        for (var i = 0; i <= $scope.values; i++) {
            if (typeof $scope.values[i] === 'string' || $scope.values[i] instanceof String) {
                alert(ERROR_MESSAGES.NOT_INTEGER);
            }

            calculatedValue += $scope.values[i];
        }
        return calculatedValue;
    }
});

(尽管特定类型的常量可能应该从某个地方加载......)

关于javascript - 在 Angular Controller 中定义常量的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47222569/

相关文章:

javascript - Angular 图表 - 无法读取数据

javascript - 在 AngularJS 指令中以编程方式选择选择框的空白选项

php - Laravel 8 中未定义操作 Controller@store 的问题

ruby-on-rails - 测试 Rails Controller : get and post strange behavior

javascript - Meteor 出版物和订阅

javascript - Google JavaScript API v3 - 街景服务 - 关闭建筑内部

javascript - Popup从底部向上滑动溢出其他div block

angularjs - Protractor + Selenium 网格 : Shard Test Specs Across Nodes

angularjs - 找不到 Angular Controller

ruby-on-rails - "No route matches"错误,但 rake 路由找到它