Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在控制器JS中设置服务超时?_Angularjs - Fatal编程技术网

Angularjs 如何在控制器JS中设置服务超时?

Angularjs 如何在控制器JS中设置服务超时?,angularjs,Angularjs,我在Angular JS中提供服务,set/getvalue: .service('mapService', function () { var mapCoord= []; mapCoord['x'] = 0; mapCoord['y'] = 0; return { getProperty: function () { retu

我在Angular JS中提供服务,
set/get
value:

.service('mapService', function () {
            var mapCoord= [];
            mapCoord['x'] = 0;
            mapCoord['y'] = 0;

            return {
                getProperty: function () {
                    return mapCoord;
                },
                setProperty: function(value) {
                    if(value.length > 0){
                        var partsOfStr = value.split(',');
                        mapCoord['x'] = partsOfStr[0];
                        mapCoord['y'] = partsOfStr[1];
                    }
                }
            };
        })
我还有两个控制器,首先执行AJAX请求并获取数据,然后传递给服务:

.controller('EditController', [...]){
    // AJAX Method
    response = function (data){
        $scope.data = data;
        mapService.setProperty(data);
    }
}
下一个控制器从服务、第一个控制器获取数据:

.controller('MapController', [...]){
   var mapCoord = mapService.getProperty();
}
在HTML模板中,这些控制器是嵌套的

<div ng-controller="EditController">
   <div ng-controller="MapController"></div>
</div>


问题是,在controller
MapController
中,我从服务
mapService
中得到了空数组,因为第一个controller
EditController
中的AJAX尚未返回数据。

您可以在AJAX调用中的success回调中触发$broadcast(),然后调用mapService的getProperty(),启用$on。如果您还没有尝试过,请告诉我,我可以发布一个代码示例。甚至可以在MapController中观看mapService.getProperty()。我们可以分享一个解决方案示例吗