我有一个全局定义的变量,我需要一个角度表达式
我尝试使用$window
服务,但它似乎不起作用:
JS
var INCLUDE_FILENAME = 'includeme.html';
HTML
{{$window.INCLUDE_FILENAME}}
<div data-ng-include="$window.INCLUDE_FILENAME"></div>
以上代码可用plunkr
我知道我可以使用controller storing data from $window
as a scope variable,但这是无用的,因为我可以在没有角度服务的情况下访问它。
答案 0 :(得分:1)
您不能直接访问全局变量作为视图中角度绑定的一部分,因为它们是针对范围进行评估的,在您的情况$rootScope
中。所以基本上你可以在app的$rootScope
run
添加一个函数。
实施例: -
angular.module('app',[]).run(['$rootScope', '$window',
function($rootScope, $window){
$rootScope.getGlobals = function(variableName){
return $window[variableName];
};
}]);
并通过此方法在任何范围内的任何位置访问它,因为任何子范围(隔离范围除外)都是$rootScope
的后代,此方法将可用于它们。
<h1>Loading below...</h1>
{{getGlobals('INCLUDE_FILENAME')}};
<div data-ng-include="getGlobals('INCLUDE_FILENAME')"></div>
<强> Demo 强>