2017-11-10 23 views
1

私は現在$スコープに定数を入れています。誰もが自分の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; 
    } 
}); 
+0

はhttps://github.com/johnpapa/angular-styleguide/tree/master/a1#constants – Edison

答えて

0

(活字体またはES2015 + JavaScriptを使用している場合やconst)だけcontrollerコールバック内で変数ます

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; 
    } 
}); 

(定数の特定の種類は、おそらくどこかからロードする必要がありますが...)

+1

んああ、それは完璧な理にかなって、どうもありがとうございました:)非常にuserfulある – B3none

0

すべての定数を1か所で使いたい場合は、次のように定数を宣言します。

var app = angular.module('app', []); 
    angular.module('AppName').constant('versionConstant', { 
     "versionNum":"1.22" 
    }); 

    // And inject them in your controller 

    angular.module(AppName).controller(ControllerName, ['$scope','versionConstant', 
    function ($scope, versionConstant) { 
     var version=versionConstant.versionNum; 
    }); 
+0

、これを参照してください。私は定数として私の定数を注入できるのですか? – B3none

+0

はい、コントローラに依存関係として定数を注入できます。 –

関連する問題