指令推迟或超时?

时间:2015-08-01 10:55:26

标签: javascript jquery angularjs

我一直在寻找一些推迟并观看示例,但发现很难与我的代码相关(想想我可能设置错了)。基本上我有一个返回一些web服务内容的指令,在这个内容中有一个jquery"阅读更多"我需要激活。

但我认为更多的内容是在内容在页面之前运行所以不起作用。即如果我在read-more init周围放置$ timeout并等待3秒就可以了,但是设置一个任意时间值是不好的做法呢?



nccaApp.directive('glossary', ['dataFactory', '$http', '$timeout', '$location', function (dataFactory, $http, $timeout, $location) {

    return function (scope, element, attrs, ctrl, transclude) {

        strURL = "/glossary/glossaryService.aspx?CategoryID=" + attrs.categoryid;

        var location = window.location.href;


            $http.get(strURL, { cache: true }).success(function (data) {

                element.html(dataFactory.glossaryText(element.html(), data))

                    // Init readmore here
                    var lesslink = 'Read less';
                    var moreLink = 'Read more';

                    $("article.read-more").readmore({
                        lessLink: '<a href="#">' + lesslink + '</a>',
                        moreLink: '<a href="#">' + moreLink + '</a>'
                    });


            });


    }


}

]);
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

你是正确的,使用$timeout解决时间问题是一个黑客。你能试一下,看看它有用吗?

element.find("article.read-more").readmore({
  lessLink: '<a href="#">' + lesslink + '</a>',
  moreLink: '<a href="#">' + moreLink + '</a>'
});

此外,您可能有理由设置元素的html,但通常在Angular中,最好通过模板运行数据。这可能是您遇到问题的另一个潜在原因。