angularjs - 使用注入的服务来获取属性

时间:2015-07-30 19:07:02

标签: angularjs

我正在jsfiddle上编写一个基本的计算器应用程序,以获得更多角度的经验,我想知道注入的服务是否可以像对象一样使用来获取属性。例如:

angular.module('CalcApp', [])
.controller('CalcVm', CalcVm)
.service('MathOperations', MathOperations);

angular.$inject = ['MathOperations'];
function CalcVm(MathOperations) {
 var vm = this;
 vm.xyz = '';
 //code
}

function MathOperations() {
 var addOp = '+';
 var subtractOp = '-';
 //etc..
}

是否可以在视图中执行此操作:

<div ng-controller='CalcVm as calcVm'>
   <button>{{calcVm.MathOperations.addOp}}</button>
</div>

我应该将服务绑定到控制器中的变量吗?

function CalcVm(MathOperations) {
 var vm = this;
 vm.xyz = '';
 vm.MathOperations = MathOperations;
 //code
}

1 个答案:

答案 0 :(得分:0)

好的,所以我一直在尝试这个,我已经弄清楚了。

以下是有效的:

angular.module('CalcApp', [])
.controller('CalcVm', CalcVm)
.service('MathOperations', MathOperations);

angular.$inject = ['MathOperations'];
function CalcVm(MathOperations) {
 var vm = this;
 vm.MathOperations = MathOperations;
 //more code
}

function MathOperations() {
 this.addOp = '+';
 this.subtractOp = '-';
 //etc..
}

请注意我在服务中使用了关键字this,并且已将注入的服务分配给控制器中的变量。

我不确定这是好事还是坏事,如果有人知道,请在行下方编辑此答案并提供更多信息。