在这里寻找答案但找不到答案。可能只是在寻找错误的东西!
我试图通过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');
});
});
})();
答案 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