我的公共服务中有一个数据,我想在我的模板中使用数据,我将分配一个rootcope并使用它,但它现在不工作,我不确定是什么错任何人都可以建议帮助。
我的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)
我在这里未定义。
答案 0 :(得分:2)
您无法直接广播数据,您需要广播事件并传递如下参数,
注意:我假设您已经注入依赖
$rootScope.$broadcast('eventName',data);
然后在控制器中如下 -
$scope.$on('eventName',function(event,data){
console.log('data---',data);
})
答案 1 :(得分: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";
})