Ich habe die Funktion showToast von einem Controller zu einem Dienst verschoben. Ziel ist es, den showToast-Code über verschiedene Controller und Direktiven hinweg zu teilen.window.plugins undefined in einem Dienst
var services = angular.module("myapp.services");
services.service('toast', function($cordovaToast){
this.showToast = function(msg) {
try {
window.plugins.toast.showWithOptions(
{
message: msg,
duration: "long", // which is 2000 ms. "long" is 4000. Or specify the nr of ms yourself.
position: "bottom",
},
{}, // optional
{} // optional
);
}
catch(e) {
console.log(e);
}
};
});
Nach dem Refactoring, erhalte ich folgende:
TypeError: Cannot read property 'toast' of undefined at Object.showToast (ToastService.js:7) at ReportProblemModalController.js:77
Nicht sicher, wie window.plugins
in einem Dienst zu belichten.
EDIT
Nicht sicher, ob das hilft:
"cordova-plugin-x-toast"
{
"variables": {
"FABRIC_API_KEY": "xxx",
"FABRIC_API_SECRET": "yyy"
},
"locator": "cordova-fabric-plugin",
"id": "cordova-fabric-plugin"
}
],
... aber ich habe das Gefühl, das prob an anderer Stelle ist, wie window.plugin
im Dienst nicht definiert ist (und Es gibt andere Plugins in der App).
Welche lib verwenden Sie dafür? – Yaser