Angular ui-sref href resolve completion callback
Angular ui-sref href resolve completion callback
所以我有一个菜单,其中包含由ui-sref解析的链接列表
<ul class="dropdown-menu" role="menu">
<li data-ng-repeat="var in variables">
<a ui-sref="user.method({myparam:var.id})">nicename</a>
</li>
</ul>
问题是 - 这大约需要 5 秒才能解决,在解决之前,angular 提供的 href 是一个模板 - 如果在替换之前单击它会导致位置错误。
理想的解决方案是使用 ng-click="$event.preventDefault();"
直到 href 完全解析并在回调时将其删除。
所以我最终得到了一个指令使用解决方案
.css:
a.disabled {
color: #cccccc;
cursor: default;
text-decoration: none;
}
.html:
<ul class="dropdown-menu" role="menu">
<li data-ng-repeat="var in variables">
<a class="lock-before-resolved disabled" ui-sref="user.method({myparam:var.id})">nicename</a>
</li>
</ul>
.js
.directive('lockBeforeResolved', function() {
return {
restrict: 'C', //check as a class
link: function(scope, element, attrs, controller) {
attrs.$observe('href',function(){
element.toggleClass("disabled");
});
element.on("click", function(e) {
if (element.hasClass("disabled")) {
e.stopPropagation();;
return false;
}
});
},
}
})
最初,当sref
尚未解析时,链接将保持不可单击状态。解决事件后,将删除禁用的类,从而允许单击链接。
希望它对某人有所帮助
相关文章:
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- Error: timers.js:234 callback.apply(timer, args);
- 在promise中返回callback()和callback(
- jquery .find callback
- ESLint prefer-arrow-callback on array.map
- NodeJS Callback
- Select2 callback function when
- 无法使用callback-javascript获取值
- JQuery callback...?
- Callback after $.get?
- 使用 Callback 将 PHP 变量传递给 JavaScript
- Javascript window.open file download callback
- 一个可翻译成JavaScript的脚本,带有callback-hell自动避免器
- jQuery '.click(callback)' 阻止默认事件
- Javascript callback for Sencha Touch proxy
- XMLHttpRequest response alter callback
- GetComputedStyle In Ajax Callback
- Twitter Web Intent on-close callback?
- Angular ui-sref href resolve completion callback