Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度用户界面sref href解析完成回调_Javascript_Angularjs - Fatal编程技术网

Javascript 角度用户界面sref href解析完成回调

Javascript 角度用户界面sref href解析完成回调,javascript,angularjs,Javascript,Angularjs,因此,我有一个菜单,其中包含由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秒钟的时间来解

因此,我有一个菜单,其中包含由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:

html:

最初,当
sref
尚未解析时,链接保持不可链接状态。解析事件后,将删除禁用的类,该类允许单击链接

希望它能帮助别人

a.disabled {
    color: #cccccc;
    cursor: default;
    text-decoration: none;
}
<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>
.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;
            }
        });
    },
}
})