angular.bootstrap启动后unbootstrap?

时间:2014-07-30 00:53:46

标签: angularjs

无法尝试重新编译角度应用。

调用angular.bootstrap后有没有办法取消引导?

一旦我已经引导了angular.bootstrap,就会导致错误

谢谢!

1 个答案:

答案 0 :(得分:7)

看起来似乎没有设计角度,我想不出你想要的任何好理由(但也许你这样做)。也就是说,从angular.js source code开始  似乎可以工作的唯一方法是删除最初从DOM引导的元素,然后重新添加它然后再次尝试引导。

这是一个jsfiddle概念验证,它引导了一个超级简单的应用程序,然后在5秒后再次引导自己。我会非常犹豫在复杂的应用程序上做这样的事情,但似乎确实有用。

 var bootstrapApp = function(appDiv) {
    var isSecondTime = false;
    if (appDiv) {
        document.body.removeChild(appDiv);
        isSecondTime = true;
    }
    appDiv = document.createElement('div');
    appDiv.id = "myApp";
    appDiv.innerHTML = (isSecondTime ? ' 2nd bootstrap': ' 1st bootstrap') + template.innerHTML;
    document.body.appendChild(appDiv);
    angular.bootstrap(angular.element(appDiv), ['myApp']);

    return appDiv;
}

var createdAppDiv = bootstrapApp(null);

setTimeout(function() {
    console.log("try boostraping again");
    bootstrapApp(createdAppDiv);
}, 5000);