jQuery代码没有在Angularjs控制器中执行

时间:2014-08-24 17:52:41

标签: jquery angularjs

我有以下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');
    });
});

1 个答案:

答案 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