Ich versuche $ translate.proposedLanguage() in einer AngularJS Komponente zu verwenden, die mir die intl-tel-Eingabe-Plugin initialisieren und konfigurieren:
function customTel() {
return {
restrict: 'A', // restrict as Attr
require: 'ngModel', // require ngModel from html
scope: {},
link: function($scope, $elem, $attrs, $ctrl) {
var ngModelCtrl = $ctrl; // access to ngModel with $ctrl
var lenguaje = $translate.proposedLanguage() || $translate.use();
if (lenguaje === "es") {
lenguaje = "ES";
} else if (lenguaje === "en") {
lenguaje = "GB";
} else if (lenguaje === "pt-pt") {
lenguaje = "PT"
}
$elem.intlTelInput({
initialCountry: lenguaje,
preferredCountries: ["ES", "GB", "PT", "US"],
nationalMode: true,
utilsScript: "../../webclientes/bower_components/intl-tel-input/build/js/utils.js"
});
}
}
}
angular
.module('webclientesApp')
.directive('customTel', customTel);
Das Problem, dass $ ist die Sprache nicht definiert ist, auch wenn ich es in der Steuerung zu injizieren:
(function() {
'use strict';
angular
.module('webclientesApp')
.controller('ContactaController', ContactaController);
ContactaController.$inject = ['$scope', 'Principal', 'ContactaServiceRest', '$state', '$translate'];
function ContactaController ($scope, Principal, ContactaServiceRest, $state, $translate) {
...
ich habe versucht, es in den Verbindungsparametern zu injizieren, oder in den .directive
unten, aber nichts hat bisher funktioniert.
Wie kann ich über die Komponente auf $ translate zugreifen? Vielen Dank!
Ändern Sie 'function customTel()' in 'Funktion customTel ($ translate)'. Sehen Sie [diese Frage] (http://stackoverflow.com/questions/15569168/injecting-service-to-directive) für weitere Informationen – George
Danke für die Hilfe, @george. Ich habe es einfach ausprobiert und diesen Fehler bekommen. Fehler: [$ injector: strictdi] customTel verwendet keine explizite Anmerkung und kann nicht im strikten Modus aufgerufen werden. Irgendeine Idee warum passiert das? Ich überprüfe die Antwort, die Sie zur Verfügung gestellt haben, gibt aber keine Informationen zu diesem Fehler :( – wickedchild