我有一個全局變量聲明在角上下文之外:如何在angularjs應用程序中包含全局變量?
var globalv =「Hello」;
此變量不會更改。我想要使用它的指令......
$scope.somevar = globalv + "_";
什麼是包括在我的angularjs應用/上下文globalv最簡單的方法?當我嘗試以上述方式引用它時,出現錯誤。
我有一個全局變量聲明在角上下文之外:如何在angularjs應用程序中包含全局變量?
var globalv =「Hello」;
此變量不會更改。我想要使用它的指令......
$scope.somevar = globalv + "_";
什麼是包括在我的angularjs應用/上下文globalv最簡單的方法?當我嘗試以上述方式引用它時,出現錯誤。
我會考慮在包裝的角度恆定值,這將使你注入它只有在其需要
var myApp = angular.module('myApplication',[]);
myApp.constant('myConstant', globalv);
只要確保定義你的角模塊之前globalv變量定義。
我比使用rootcope /全局變量更好,因爲您可以控制值的使用者是誰。
你可以注入像這樣的常數:
mayApp.directive('myDirective',['myConstant',
function (myConstant) {
return {
..
};
}]);
你有什麼理由不能將它包含在角度上下文中嗎?如果它絕對需要是全局的,您可以將它添加到角度範圍內的根目錄。
/* declare rootscope variables when the angular app starts*/
angular.module('someApp').run(function ($rootScope) {
$rootscope.globalv = "Hello";
});
然後,您可以在角度應用程序中的任意位置引用該rootcope變量。
這對我來說很簡單,但我個人討厭使用$ rootScope,除非必須。你應該儘量遠離全局變量。
我已經包含在我的index.html具有所有angular.module(「someApp」)一個js文件...我想注入globalv在我的index.html頁面中(它幾乎不包含javascript),在你的答案中,如果包含代碼的腳本標記存在於包含應用程序開始的js文件之前或之後,是否存在(angular.module ('someApp'))? – Rolando 2014-10-02 02:54:12
如果你打算使用角度,我建議把所有的邏輯放在你的角碼裏,我不確定爲什麼你需要在你的角碼之外的腳本標籤中有一個變量。 – 2014-10-02 12:01:30
這個常數是否可以用於我的指令?我可以使用: $ scope.somevar = myConstant? – Rolando 2014-10-02 04:13:15
增加了一個例子 – TGH 2014-10-02 04:16:21