如何通过绑定的控制器变量访问服务的属性
How to access a property of a service via a bound controller variable
我试图通过模板中的绑定控制器变量访问服务的属性,但没有成功。
控制器:
app.controller('VictoryController', function($scope, AlertStatisticsService) {
$scope.AlertStats = AlertStatisticsService;
});
服务返回一个结构如下的对象:
factory = {
factionWins = {
vs: 123,
nc: 123,
tr: 123
}
}
模板作为Attribute指令的一部分呈现:
app.directive('homeVictoryCard', function() {
return {
restrict: 'A',
replace: true,
scope : {
empire: '@',
},
templateUrl: 'views/home/partials/victory.card.html'
};
});
它由以下HTML元素调用:
<div home-victory-card empire="vs"></div>
在有问题的模板中,我试图通过empire
变量访问控制器/服务的对象数据,该变量在模板的范围内,如下所示:
{{ AlertStats.factionWins[empire] }}
我也尝试在各种ng隐藏和ng显示中使用它,比如:
ng-hide="AlertStats.factionWins[empire] > 0"
在Twig中,我曾经使用attribute(AlertStats.factionWins, empire)
来获取信息,但我不知道如何在Angular中做到这一点,谷歌搜索也没有返回任何有用的信息。
提前感谢!
由于您有具有独立作用域的指令,因此它不会从父控制器继承作用域,因此AlertStats
不在指令作用域中
您可以将工厂注入指令,或者将另一个范围变量作为属性传递给指令
示例注入工厂
app.directive('homeVictoryCard', function(AlertStatisticsService) {
return {
restrict: 'A',
replace: true,
scope : {
empire: '@',
},
templateUrl: 'views/home/partials/victory.card.html',
link:function(scope){
scope.AlertStats = AlertStatisticsService
}
};
});
相关文章:
- AngularJS-需要在index.html页面中访问来自服务的数据
- Angular使服务可以从任何地方访问
- 从AngularJS中的另一个文件中的控制器访问服务
- 可以't访问Angular.js服务中的功能
- 无法使用javascript客户端访问远程web服务
- 使用typescript访问导入的服务时发生Angular2错误
- 服务变量分配了数据,但在访问时始终未定义
- 控制器切换后匿名功能中的访问服务数据发生变化
- 为什么我无法访问使用 $provide.provider 和 $injector.get 创建的服务
- 在 Jasmine 测试中无法访问 Angular 服务函数
- 从Web服务访问JSON响应
- 如何访问ng-init或ng-checked中服务回调函数中声明的$scope变量
- Microsoft认知服务JavaScript请求'访问控制允许来源'
- 如何正确访问es6中的AngularJS服务
- 如何访问回调函数之外的异步angularjs服务数据
- 从函数内部、类内部、模块内部访问 Angular 服务
- 从 Angular 控制器访问不同模块中的角度服务
- 如何通过绑定的控制器变量访问服务的属性
- 使用Angular服务和JavaScript类(在类中访问服务,或者在Angular框架中修改类)
- 如果angular视图直接访问服务,这是一个好习惯吗?