访问angularjs中的服务属性

时间:2014-06-05 20:17:09

标签: angularjs

我创建了一个服务来在两个控制器之间共享一些数据。问题是这个控制器设置并从这个服务获取一些数据。但我不知道为什么当我尝试获取数据时,所有这些变量都没有设置。

我的代码就是这个:

 var appModule = angular.module('app', ['mgcrea.ngStrap'])
            // custom service to share/collect data between controllers
            // this objects are populated by the controllers
            .service('sharedProperties', function () {
                    this.searchPattern = {
                                        basicFilters: {},
                                        advanceFilters: {}
                                    };

            });

    // controller for main section
    appModule.controller('parentController', function ($scope, $aside, sharedProperties) {
        $scope.basicFilters = {
                                category: 'undef',
                                masterbrand: {value:'undef', text: 'Any'},
                                page: 1,
                                perPage:10,
                                q:''
                            };

        // populate object in service 
        $scope.updatePatternSearch = function(newValue, oldValue, scope) {
            sharedProperties.searchPattern.basicFilters = 'HI!, I have a value!';
        };
        $scope.$watch('basicFilters', 'updatePatternSearch', true);

        // get variables from service
        $scope.search = function() {
                // ** PROBLEM ** 
                // firebug says that is:basicFilters: {},
                //                      advanceFilters: {}
                // empties????, why??
                console.log(sharedProperties.searchPattern); 
            }
        }
    });

1 个答案:

答案 0 :(得分:1)

你的plnkr代码中有很多拼写错误和错误。

我已经分叉并更新了它。它工作正常。

看看这个 - http://plnkr.co/edit/BVFjufOQFFlhB2gTqIeB?p=preview