2016-03-28 11 views
2

Ich habe Add-In für Outlook Office365 erstellt und ich habe ihre office.js in der Lage, eine Information aus E-Mail zu erhalten.wie mit verschachtelten Objekten von js in Dart (neue Dart-Js-Interop)

dart.js Beispiel:

js.context['Office']['context']['mailbox']['userProfile']['emailAddress'] 

oder

js.context['Office']['context']['mailbox']['item']['to'].callMethod('getAsync', [callback(result)]) 

Wie kann ich neue verwenden dart-js-interop für solche Bedürfnisse?

Antwort

1
@JS('Office.context.mailbox.userProfile.emailAddress') 
external get emailAddress; 
@JS('Office.context.mailbox.item.to.getAsync') 
external getAsync(Function callback); 

, wenn Sie anrufen getAsync müssen Sie die Funktion, die Sie mit Vorsicht mit allowInterop oder allowInteropCaptureThis

getAsync(allowInterop((x) => print(x))); 

Versuchen Rückruf passieren wickeln. Ich habe vor ein paar Monaten ein bisschen mit der neuen Dart-Js-Interop gespielt, habe sie aber selbst noch nicht in echtem Code benutzt.

+0

Vielen Dank! Es hilft mir bei statischen Anrufen. Ja, es ist eigentlich 'mailbox' :) –

+0

Übrigens, wie man mit' JSObjectImpl' umgeht? Es gibt keine Methoden wie 'callMethod()' oder '['fieldName']'. –

+0

Nicht sicher, ich denke, Sie müssen es zu einem konkreten Typ gießen. Woher bekommst du es? –