我在 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。我的问题是如何使用指令来实现这一点?换句话说,在从服务器加载所有内容之前,如何隐藏指令附加到的元素?