Javascript 如何向每个AngularJS$范围添加一致的变量或函数?
我制作了一个应用程序(使用AngularJS 1.X构建),它有很多指令,其中大多数都有自己的独立作用域。因此,对于每一个新的Javascript 如何向每个AngularJS$范围添加一致的变量或函数?,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我制作了一个应用程序(使用AngularJS 1.X构建),它有很多指令,其中大多数都有自己的独立作用域。因此,对于每一个新的$scope我将下划线.js+下划线.string变量\uu和s分配给它们,如下所示: controller: function($scope){ $scope._ = _; $scope._s = s; $scope.foo = 'my-example-here'; } 然后在这些独立的作用域模板中做一些很酷的事情: <div ng-bind='s.
$scope
我将下划线.js
+下划线.string
变量\uu
和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
?尝试以下方法:
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>
请试一试
编辑
此外,您还可以使用@georgeawg在评论中所述的方法。尝试以下方法:
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>
请试一试
编辑
此外,您还可以使用@georgeawg在评论中描述的方法。您尝试过$rootScope吗?还没有,但如何尝试?下面是我刚才尝试的
.directive('body',function($rootScope){return{controller:function(){$rootScope.derp=“foo!”;}}}}}}
。但是我无法从一个孤立的范围中看到derp
。或者,它错了吗?John Papa风格指南为此推荐了常量。您尝试过$rootScope吗?还没有,但如何尝试?下面是我刚才尝试的.directive('body',function($rootScope){return{controller:function(){$rootScope.derp=“foo!”;}}}}}}
。但是我无法从一个孤立的范围中看到derp
。或者,这是错的。约翰·帕帕风格指南为此目的推荐了常量。嗨,这行得通,但通过$rootScope
访问它是我唯一的选择吗?更新了答案。嗨,这行得通,但通过$rootScope
访问它是我唯一的选择吗?更新了答案