我正在尝试使用服务而不是工厂来执行双向数据绑定,我已经看过可能在线使用工厂的教程,但我更喜欢使用服务而不是工厂,到目前为止我已经提出了以下模式执行绑定但是,在执行console.log()时,我发现服务中的数据没有绑定到控制器上的数据。
controller: ['$scope','LeadsService','ServiceVehicleModels', function($scope, LeadsService, ServiceVehicleModels) {
$scope.colorList = ServiceVehicleModels.colors;
$scope.yearsList = ServiceVehicleModels.years;
$scope.$watch(function() { return ServiceVehicleModels.colors }, function(data) {
return $scope.colorList = data.colors;
},true);
};
这是我的服务代码 exports.service = function(){
this.colors = [];
this.years = [];
this.trims = [];
var scope = this;
this.setColors = function(colorsArr) {
scope.colors = colorsArr;
};
this.setYears = function(yearsArr) {
scope.years = yearsArr;
};
};
我需要做些哪些更改才能使数据绑定工作?
答案 0 :(得分:0)
你在观察者中有问题。这应该解决绑定:
$scope.$watch(function() { return ServiceVehicleModels.colors }, function(colors) {
return $scope.colorList = colors;
},true);