Angularjs 仅在页面视图中完成数据加载后隐藏页面加载程序
目前我与angularjs合作。 现在我有了一个ng click函数,当选中或取消选中复选框时调用它。我有一个完整的页面加载器,当我点击复选框时,它会显示出来。只有在加载完整视图后,它才会被隐藏。我尝试了这个代码,但它不起作用 点击这里Angularjs 仅在页面视图中完成数据加载后隐藏页面加载程序,angularjs,Angularjs,目前我与angularjs合作。 现在我有了一个ng click函数,当选中或取消选中复选框时调用它。我有一个完整的页面加载器,当我点击复选框时,它会显示出来。只有在加载完整视图后,它才会被隐藏。我尝试了这个代码,但它不起作用 点击这里 <input type="checkbox"id="myId" ng-click="sampleClick(1)"> 我只想在视图部分完全加载时设置$rootScope.setVariable=1。(每次单击复选框时) 注意:当我在页面加载时使用$
<input type="checkbox"id="myId" ng-click="sampleClick(1)">
我只想在视图部分完全加载时设置$rootScope.setVariable=1。(每次单击复选框时)
注意:当我在页面加载时使用$viewContentLoaded时,它可以正常工作。但是,当我在使用ng click功能时,没有得到任何响应。
You can set one flag you can set it value true/false.
for example(I am taking your example so you can understand it batter):-
$scope.loading = false;
$scope.sampleClick = function(type) {
var param = new Object();
param.type = type;
//side bar listing
Data.post('url/testurl', param).then(function(data){
$scope.all = '';
$scope.all = angular.fromJson(data);
console.log("Contents is trying to load.");
$scope.loading = true;
$scope.$on('$viewContentLoaded',function(event, viewConfig){
$scope.loading = false;
console.log("Contents did load.");
$rootScope.setVariable = 1;
});
}, function (error) {
$rootScope.setVariable = 1;
});
}
这里我有一个$scope.loading变量,默认值为false,当您单击复选框时,它将被设置为true,这样您就可以显示加载程序,当它获得数据时,它将被设置为false,这样它将停止加载
我希望您能理解。如果视图是使用ng repeat渲染的,为什么不能使用ng repeat指令来处理渲染结束,然后启动函数调用呢 比如说
<div ng-repeat="i in things" repeat-done>
// here you use i to render your filter with checkbox
</div>
实际上,$viewContentLoaded并不适用于每次单击。不是关于如何设置变量。$scope.$on(“$viewContentLoaded”,函数(事件,viewConfig){$scope.loading=false;console.log(“内容未加载”);$rootScope.setVariable=1;});这不适用于ng click。
<div ng-repeat="i in things" repeat-done>
// here you use i to render your filter with checkbox
</div>
app.directive('repeatDone', function($rootScope) {
return function(scope, element, attrs) {
if (scope.$last){
//set your variables or do you job
}
};
})