如何在视图表达式中访问 Angular 服务
How to access Angular service in a view expression?
Angular
文档建议使用 Angular 服务 Angular 表达式:
而是在从表达式调用的函数中使用 $window 和 $location 等服务。此类服务提供对全局变量的可模拟访问。
– https://docs.angularjs.org/guide/expression#context
但是,默认情况下,这些服务似乎不在视图范围内,例如
{{$location || 'Undefined'}}
将产生"未定义"。
如果要从视图访问$location
服务,是否需要将其注入范围?
/* some controller */ function ($scope, $location) {
$scope.$location = $location;
}
这里最好的办法是在控制器方法调用或指令中封装您尝试执行的操作。例如,如果要将当前 URL 引入视图,则可能应该执行以下操作。
视图
<p>{{ CurrentUrl }}</p>
控制器
(function(app){
app.controller("myController",["$scope","$location",function($scope,$location){
$scope.CurrentUrl = $location.$$path; // or whatever is most useful to display
}]);
})(myApp);
这意味着您遵循 Angular 的 IOC 模式,而不是将"$location"紧密耦合到您的视图或控制器。
在这里使用"$location"显然只是一个例子。您可以使用"$window"或任何您想要的内容。
相关文章:
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- angularjs:访问angular控制器中的jquery变量
- 可以't访问Angular.js服务中的功能
- 无法访问Angular Directive模板函数中的属性实际值
- 如何从其他方法访问Angular.js$scope
- 控制器无法访问Angular Service变量
- 在 Jasmine 测试中无法访问 Angular 服务函数
- 控制器内部无法访问Angular js输入模型
- 从自己的事件中访问angular$scope
- 无法使用typescript访问angular中另一个控制器中声明的$rootscope属性
- 如何访问Angular JS模板指令中设置的值,如“ng class?”
- 从函数内部、类内部、模块内部访问 Angular 服务
- 为什么可以't我访问Angular创建的新DOM元素
- 如何在 ng 重复中访问 Angular 表单上的$valid
- 使用 jQuery 访问 Angular 指令中的元素
- 如何通过 Javascript 注入访问 Angular 属性
- FlowJS示例,用于循环访问Angular控制器中的文件
- 如何在视图表达式中访问 Angular 服务
- JavaScript 访问 Angular 范围返回“未定义” - 异步问题
- 访问 Angular .js 中的另一个控制器