Angular ng-include包含全局变量的src

时间:2014-08-13 20:21:40

标签: angularjs

我有一个全局定义的变量,我需要一个角度表达式 我尝试使用$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,但这是无用的,因为我可以在没有角度服务的情况下访问它。

1 个答案:

答案 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