Mam witrynę ze średniej wysokości. Chcę używać ExecuteFunction powiązać przycisk do uruchomienia tej witryny w Okno dialogowe:
function doSomethingAndShowDialog(event) {
clickEvent = event;
Office.context.ui.displayDialogAsync("https://localhost:3000/try", {}, function() {})
}
Kliknięcie na przycisk otwiera okno dialogowe z następującym adresem URL, to jednak wykazują zawartość strony:
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
jednak w konsoli, istnieje Error: $rootScope:infdig Infinite $digest Loop w angular.bootstrap(document, ['myapp'])
:
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(...);
Gdybyśmy tylko otwarte https://localhost:3000/try
w browse r, nie ma błędu.
Czy ktoś wie, dlaczego ten długi URL nie zadziałał z angular.bootstrap
? Jak możemy to naprawić?
Edytuj 1: zrzut ekranu konsoli dla https://localhost:3000/try?_host_Info=excel...
. Zauważ, że nie wyświetla się ani bootstrapped inside Office.initialize
ani bootstrapped outside Office.initialize
. Ale jeśli uruchomię w przeglądarce https://localhost:3000/try
, zobaczę tylko bootstrapped outside Office.initialize
, gdy zadzwonię do niego z klienta Excela, zobaczę tylko bootstrapped inside Office.initialize
.
Po załadowaniu lub zdefiniowaniu modułów należy wywołać metodę angular.bootstrap(). Sprawdź https://docs.angularjs.org/guide/bootstrap lub więcej szczegółów. – Vivz
Gdzie jest zadeklarowany "myapp"? – 31piy
Nazywasz 'angular.bootstrap (document, ['myapp'])' dwa razy sprawdź to. Musisz go uruchomić raz. –