我有以下Angularjs控制器加载JSON文件并将其添加到范围,以便我可以在视图中使用它。然后我有一些jQuery代码,但这段代码永远不会被执行。我想通过将代码放在$scope.$on('$viewContentLoaded', function() {
中,它会等待页面加载,但我认为情况并非如此。有谁知道我哪里出错了?
myApp.controller('pageController', function($scope) {
$.getJSON("data.json", function(data) {
$scope.data = data;
});
$scope.$on('$viewContentLoaded', function() {
//This event never gets fired
$(".more").hover(function(e) {
alert('here');
});
});
答案 0 :(得分:1)
来自jQuery的getJSON发生在'angular'世界之外,需要包含在scope.$apply
尝试以下方法:
$.getJSON("data.json", function(data) {
$scope.apply(function () {
$scope.data = data;
//This event never gets fired
$(".more").hover(function(e) {
alert('here');
});
});
});
我建议您从角度使用$http
或$resource
服务。如果您使用它们,则不再需要呼叫$apply