我在Angularjs中遇到问题,在我的数据从服务器返回之前,HTML出现了闪烁。
这是演示该问题的视频:http: //youtu.be/husTG3dMFOM-注意#| 和右边的灰色区域。
我尝试了ngCloak并没有成功(尽管ngCloak确实阻止了括号如期出现),并且想知道隐藏内容的最佳方法,直到Angular填充HTML。
我在控制器中使用了以下代码:
var caseCtrl = function($scope, $http, $routeParams) {
$('#caseWrap').hide(); // hides when triggered using jQuery
var id = $routeParams.caseId;
$http({method: 'GET', url: '/v1/cases/' + id}).
success(function(data, status, headers, config) {
$scope.caseData = data;
$('#caseWrap').show(); // shows using jQuery after server returns data
}).
error(function(data, status, headers, config) {
console.log('getCase Error', arguments);
});
}
...但是我一次又一次地听到不要从控制器操纵DOM。我的问题是如何使用指令实现这一目标?换句话说,如何隐藏指令附加的元素,直到从服务器加载所有内容?