我制作了一个App(使用AngularJS 1.X构建),它有很多指令,其中大部分都有自己的隔离范围。因此,对于每个新的$scope
我都会为其分配Underscore.js
+ Underscore.string
变量_
和s
,如下所示:
controller: function($scope){
$scope._ = _;
$scope._s = s;
$scope.foo = 'my-example-here';
}
然后在孤立的范围模板中做一些很酷的事情:
<div ng-bind='s.humanize(some_id)'></div> # output: "My example here"
不幸的是,您无法访问这些范围中的全局变量。
那么,最终,如何为每个AngularJS $scope
添加一致的变量或函数?
答案 0 :(得分:0)
试试这个:
app.controller('MyCtrl', function($rootScope) {
$rootScope.derp = "foo!";
});
app.directive('myDir', function($rootScope) {
return {
scope { ... },
controller: function($rootScope) {
console.log($rootScope.derp);
}
};
});
确保将ng-controller="MyCtrl"
指令放在自定义指令的父DOM元素上,如下所示:
<div ng-controller="MyCtrl">
<div my-dir></div>
</div>
请试试。
EDIT 此外,您可以在评论中使用@georgeawg所述的constants。