[angularjs]在页面上执行功能,或不?

发布时间: 2017/4/16 2:26:13
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有递归函数如下︰

scope.$watch('settings.egg', function () {
                    var index = 0;
                    function inOrder() {
                        setTimeout(function () {
                            $(".egg").eq(index).removeClass("maximize")
                            $(".egg").eq(index + 1).addClass("maximize")
                            index++;
                            inOrder();
                        }, 3000)
                    };
                    $(".egg").eq(index).addClass("maximize")
                    inOrder();
                })

我的函数执行加载页面上但我不想那样。 我只想工作单击按钮不在加载页。 我怎么了? 请...

解决方法 1:

为什么不设置绑定到一个函数 ng-click 的然后你按钮并设置您的函数内,?例如︰

scope.buttonClick = function() {
  scope.watchFunc = scope.$watch('settings.egg', function () {
                    var index = 0;
                    function inOrder() {
                        setTimeout(function () {
                            $(".egg").eq(index).removeClass("maximize")
                            $(".egg").eq(index + 1).addClass("maximize")
                            index++;
                            inOrder();
                        }, 3000)
                    };
                    $(".egg").eq(index).addClass("maximize")
                    inOrder();
                })
}

所以,你很容易可以从稍后取消 $watch 的另一个函数中调用它,你要将存储这在范围变量。在您的标记︰

<button ng-click="buttonClick()">Click me to set the watch</button>
官方微信
官方QQ群
31647020