我创建了一个我想用来设置控制器之间值的服务。我正在使用ng-model。在我的服务之前,我在我的html中有这个:
<div class="col col-25">
<a class="input" data-ng-keypad-input="numeric" tabindex="15" data-ng-model="fields.widthDefault" ng-change="updateROIWidths()">{{fields.widthDefault}}</a>
</div>
我的字段定义如下:
$scope.fields = {
widthDefault : 0
我的updateROIWidths只是:
$scope.updateROIWidths = function(){
$scope.fields.widthCurrent = Number($scope.fields.widthDefault);
};
但是,现在我需要一个服务,因为我必须在其他控制器中设置默认值。所以,我提供了这样的服务:
.service('DefaultValuesService', function() {
this.defaultWidth = Number(0);
this.getDefaultWidth = function() {
return this.defaultWidth;
};
this.setDefaultWidth = function(w) {
this.defaultWidth = Number(w);
};
)
那么我现在在html或js中如何使用推算的默认值来设置其他值呢?
答案 0 :(得分:0)
您需要将服务注入两个控制器。你这里没有任何控制器代码,但基本上你最终会得到像
这样的东西.controller('controllerA', ['$scope', 'DefaultValuesService', function($scope, DefaultValuesService){
$scope.fields = {
widthDefault : DefaultValuesService.defaultWidth
}
}]
.controller('controllerB', ['$scope', 'DefaultValuesService', function($scope, DefaultValuesService){
$scope.changeDefaultWidth = function(width){
DefaultValuesService.defaultWidth
}
}]
请注意,由于Angular的双向绑定功能,您不需要getter / setter。