2016-11-17 49 views
0

我在我的commonservice中有一個數據,我想使用我的模板中的數據,我將分配一個rootcope並使用它,但它現在不能正常工作,我不確定哪裏出了問題任何人都可以請建議幫助。如何在angularjs中使用rootScope

我的JS:

function addGoogleAddress(id, data, scope) { 
    var places = new google.maps.places.Autocomplete(document.getElementById(id)); 
    google.maps.event.addListener(places, 'place_changed', function() { 
     var place = places.getPlace(); 
     if (place && place.address_components) { 
      for (var i = 0; i < (place.address_components.length); i++) { 
       if (place.address_components[i].types[0] === 'locality') { 
        data.city.key = '1001'; 
        data.city.name = place.address_components[i].long_name.toString(); 
       } else if (place.address_components[i].types[0] === 'administrative_area_level_1') { 
        data.state.key = '1001'; 
        data.state.name = place.address_components[i].long_name.toString(); 
       } else if (place.address_components[i].types[0] === 'country') { 
        data.country.key = '1001'; 
        data.country.name = place.address_components[i].long_name.toString(); 
       } 
      } 
     } 
    }); 
    $timeout(function() { 
     $('#' + id).removeAttr('placeholder'); 
    }, 500); 
    $rootScope.data = data; 
} 

我的控制器:

console.log($rootScope.data) 

我在這裏越來越不確定。

回答

2

你不能直接播放的數據,你需要播放的事件,並通過參數類似如下,

注:我在此假設你已經注入依賴於控制器

$rootScope.$broadcast('eventName',data); 

然後像如下 -

$scope.$on('eventName',function(event,data){ 
console.log('data---',data); 
}) 
+0

Mr.Helper嗨,我怎麼能在我看來,用這個數據?是它足以與日是ng-model = data.city.name或我應該調用該函數。 – MMR

+0

你不能直接使用這些數據。您需要將數據分配到ng-modal 例如。 $ scope.modalName = data; –

+0

我怎樣才能調用這個函數$ scope。$ on('eventName',function(event,data){ console.log('data ---',data); })? – MMR

0
app.controller('ctrl1',['$scope','$rootScope',function($scope,$rootScope) { 
    $scope.xyz = $rootScope.xyz; 
    //console.log($scope.xyz); hey 
}]); 

app.run(function($rootScope){ 
    $rootScope.xyz ="hey"; 
}) 
相關問題