在angularjs

时间:2015-06-29 12:07:26

标签: javascript angularjs data-binding service

我正在尝试使用服务而不是工厂来执行双向数据绑定,我已经看过可能在线使用工厂的教程,但我更喜欢使用服务而不是工厂,到目前为止我已经提出了以下模式执行绑定但是,在执行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;
};

};

我需要做些哪些更改才能使数据绑定工作?

1 个答案:

答案 0 :(得分:0)

你在观察者中有问题。这应该解决绑定:

$scope.$watch(function() { return ServiceVehicleModels.colors }, function(colors) {                                
            return $scope.colorList = colors;                   
        },true);