我有一个带有一些标签的页面,每个标签都有大量的angularjs绑定.这是我面临问题的示例页面.每个标签大约需要10秒才能呈现.
所以我打算在制表符渲染时给出一个加载微调器.因此,我计划在单击选项卡时显示加载微调器,并$last在ng-repeat 的末尾()移除微调器.
在ng-click on标签上,我激活了旋转装载机
<ul>
<li ng-repeat="tab in tabs"
ng-class="{active:isActiveTab(tab.url)}"
ng-click="onClickTab(tab)">{{tab.title}}
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在控制器中
$scope.onClickTab = function (tab) {
showLoader();
$scope.currentTab = tab.url;
}
Run Code Online (Sandbox Code Playgroud)
为了检查ng-repeat是否完整,我使用了以下指令
.directive('onFinishRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, element, attr) {
if (scope.$last === true) {
$timeout(function () {
scope.$emit('ngRepeatFinished');
});
}
}
}
});
$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
removeLoader();
});
Run Code Online (Sandbox Code Playgroud)
showLoader和removeLoader是简单的函数,它附加和删除具有简单加载微调器的div.
function showLoader() {
$('body').append('<div class="loader"></div>');
}
function removeLoader() {
$('.loader').fadeOut(function () {
$(this).remove();
});
} …Run Code Online (Sandbox Code Playgroud) 我有json数组,我想从这里创建表,并希望给出一个数组元素的标题.这是表示场景的小提琴.
<div ng-repeat="products in items">
<div>{{products.IDTYPE}}</div>
<div>
<table border=1>
<thead>
<th>primkey</th>
<th>userid</th>
</thead>
<tbody>
<tr>
<td>{{products.PRIMKEY}}</td>
<td>{{products.USERID}}</td>
</tr>
</tbody>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
这将创建带有IDTYPE标题的简单表.但我想用唯一的IDTYPE对行进行分组.所以所需的表格将如此链接所示.
所以我尝试添加ng-show条件,ng-show="$index==0 || items[$index-1].IDTYPE!=items[$index].IDTYPE"但它不能正常工作,因为tbody和table将为每一行构建.这就是我尝试过的.
那么如何在上面的描述中按照我的需要生成表格呢?
我创建了一个小的vb6应用程序,用于编辑HKLM配置单元中的注册表.它使用函数RegSetValueEx.但是当在Windows 7和Windows 8 pc中运行exe文件时,即使在管理员用户中运行它也不会编辑注册表.
在Windows XP中它工作正常.如果我运行相同的应用程序作为"以管理员身份运行"(通过右键单击exe然后运行为)在Windows 7和8中然后它正常工作.我认为Windows 7和8 id设计为像这只是.但有没有任何方法可以编辑它而无需以管理员身份运行?或者vb6中是否有相同的代码.
这是我的小代码
重要: 检查代码时创建exe然后运行exe并单击按钮(在wow32节点中添加HKEY_LOCAL_MACHINE\SOFTWARE\Demo注册表,因为vb6是32位应用程序).通过打开代码直接运行代码允许注册表更改.但是创建exe然后运行它会产生问题,这是任何应用程序中的实时场景.
根据一些链接,我读到“与 ng-show 不同,ng-if 指令创建了一个新的范围。”但我对下面的情况感到困惑。看这个演示
<div ng-if="true">
<div>
visibility variable: {{showIt}}<br>
visibility variable: {{$parent.showIt}}
</div>
<a href="" ng-show="!showIt" ng-click="$parent.showIt = true">Show It</a><br>
<a href="" ng-show="!$parent.showIt" ng-click="$parent.showIt = true">Show It</a>
<div ng-show="showIt">
This is a dynamically-shown div.
<a href="" ng-click="hideIt()">Hide it</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中, {{showIt}} 和 {{$parent.showIt}} 将计算为相同的值,甚至 ng-sho 也会计算为相同的值。但是在 ng-click 中,如果我不指定父级,那么它将给出意外的结果,因为 ng-if 创建子范围。我还检查了在使用 ng-model 时需要使用父范围。那么为什么 {{showIt}} 和 {{$parent.showIt}} 的计算结果相同呢?
使用 ng-if 时应该注意什么?