ng-cloak
非常适合在编译完成之前延迟显示元素。
从服务器加载数据时是否存在隐藏元素的等效(或策略)?
简单示例:
<span>Name: {{item.name}}</span>
ng-cloak
将确保在加载item.name
之前隐藏它。但是如果控制器加载了item.name
,例如从REST API开始,这将首先显示为“Name:”,然后再闪烁为“Name:John”。下面的控制器片段:
$scope.item = Item.get({item:"1234"});
也可能有不同的项目,以串行或并行方式加载:
$scope.item1 = Item.get({item:"1234"});
$scope.item2 = Item.get({item:"6789"});
这种方法有“原生角”吗?如果没有,最好的策略是什么?是仅将$scope.ready
标志设置为false并设置为ng-show="ready"
,然后当控制器感觉所有内容都已加载时,执行$scope.ready = true;
?有一些标准化的方法吗?
例如(使用async lib):
$scope.ready = false;
async.parallel([
function(cb) {
Item.get({item:"1234"}, function(item){$scope.item1 = item; cb();});
},
function(cb) {
Item.get({item:"6789"}, function(item){$scope.item2 = item; cb();});
}
],function(err) {
$scope.ready = true;
});
答案 0 :(得分:0)
ngCloak
实际上只对初始页面加载有用。
对于所有其他情况,我建议简单ngShow
/ ngHide
/ ngIf
<span ng-show="ready">Name: {{item.name}}</span>