我有一個平均堆棧網站。我想用ExecuteFunction綁定一個按鈕,在對話框中推出這個網站:
function doSomethingAndShowDialog(event) {
clickEvent = event;
Office.context.ui.displayDialogAsync("https://localhost:3000/try", {}, function() {})
}
點擊按鈕將打開以下網址一個對話框,它顯示頁面的內容:
https://localhost:3000/try?_host_Info=excel|web|16.00|en-us|7fe9b4e9-d51e-bea5-d194-c817bc5ed4bc|isDialog#%2Ftry%3F_host_Info=excel%7Cweb%7C16.00%7Cen-us%7C7fe9b4e9-d51e-bea5-d194-c817bc5ed4bc%7CisDialog
然而,在控制檯中,有在angular.bootstrap(document, ['myapp'])
是Error: $rootScope:infdig Infinite $digest Loop:
var wait = setTimeout(myFunction, 1000);
Office.initialize = function (reason) {
$(document).ready(function() {
angular.bootstrap(document, ['myapp'])
console.log("bootstrapped inside Office.initialize");
clearTimeout(wait);
})
}
function myFunction() {
$(document).ready(function() {
angular.bootstrap(document, ['myapp'])
console.log("bootstrapped outside Office.initialize");
})
}
app = angular.module("myapp", []);
app.config(...);
app.controller(...);
如果我們只是在瀏覽打開的https://localhost:3000/try
r,沒有錯誤。
有誰知道爲什麼這個長的網址不適用於angular.bootstrap
?我們如何解決這個問題?
編輯1:控制檯的屏幕截圖https://localhost:3000/try?_host_Info=excel...
。請注意,不會顯示bootstrapped inside Office.initialize
和bootstrapped outside Office.initialize
。但是,如果我在瀏覽器中運行https://localhost:3000/try
,我將只能看到bootstrapped outside Office.initialize
,當我從Excel客戶端調用它時,我將只看到bootstrapped inside Office.initialize
。
在加載或定義模塊後,您應該調用angular.bootstrap()。查看https://docs.angularjs.org/guide/bootstrap或更多詳細信息。 – Vivz
「myapp」聲明在哪裏? – 31piy
你正在調用'angular.bootstrap(document,['myapp'])'兩次檢查它。你需要一次引導它。 –