将jquery插入到角度http请求中

时间:2014-12-20 17:56:12

标签: jquery angularjs angular-http

在这里寻找答案但找不到答案。可能只是在寻找错误的东西!

我试图通过angulars http.get加载json数据后运行一些jquery。问题是我无法让jquery工作,并想知道是否有人知道原因。

请求正常工作并加载数据,只有$('.verb').fadeIn(600);不起作用。 console.log工作正常。

我怀疑这与在将元素加载到DOM之前尝试运行的jquery有关,但无论我把jquery放在哪里它都不起作用。

我的代码是:

(function () {
    var app = angular.module('verbsApp', []);

    app.controller("PostsCtrl", function ($scope, $http) {
        $http.get('data/verbData.min.json').
        success(function (verbData) {

            $('.verb').fadeIn(600);
            console.log('success');

            $scope.passedData = verbData.data;
            console.log($scope.passedData);
        }).
        error(function (verbData) {
            // log error
            console.log('error');
        });

    });

})();

1 个答案:

答案 0 :(得分:1)

首先,你要混合jQuery& angularJS,你不应该这样做。其次,Angular的ngShow可以很容易地根据事件显示/隐藏元素。

所以基本上,在你的控制器中;

$scope.showVerb = false;
$http.get(…).success(function (result) {
    …
    $scope.showVerb = true;
    …
});

你的HTML就相应地了;

<div class="verb" ng-show="showVerb">
    …
</div>

您可以选择为显示/隐藏设置动画:http://scotch.io/tutorials/javascript/animating-angular-apps-ngshow-and-nghide