2016-08-08 39 views
0

Ich versuche Daten von einem JSON-Objekt anzuzeigen, das sich innerhalb des Bereichs eines Controllers befindet. Dies würde innerhalb einer Funktion geschehen, die ein ionisches Popup aufruft. Was ich versuche, ist, diese Daten in einer Vorlage anzuzeigen, mit der das Popup selbst erstellt werden würde. Die folgende Funktion wohnt in der Steuerung:Winkelausdruck im Ionischen Popup nicht richtig ausgewertet

this.showAlert = function(i) { 

this.pref = [{ 
    label: "Foo", 
    addr_l1: "Bar", 
    addr_l2: "Baz", 
    locality: "Pez" 
}]; 

var popUp = '<p>dcd{{pickupCtrl.pref[' + i + '].addr_l1}}</p>' + 
    '<p>{{pickupCtrl.pref[' + i + '].addr_l2}}</p>' + 
    '<p>{{pickupCtrl.pref[' + i + '].locality}}</p>'; 

var alertPopup = $ionicPopup.alert({ 
    title: this.pref[i].label, 
    template: popUp, 
    buttons: [{ 
    text: 'Cancel' 
    }, { 
    text: '<b>OK</b>', 
    type: 'button-positive', 
    onTap: function(e) { 
     // add choice 
    } 
    }, ] 

}); 

}

Aus irgendeinem Grund wird die Vorlage der Winkel Ausdruck nicht angezeigt wird, aber es macht den „dcd“ Text anzeigen ich als Test hinzugefügt. Das bedeutet, dass etwas falsch ist in der Art, wie ich den Ausdruck selbst nenne.

Wie soll ich die Variable in der Vorlage angeben, damit sie korrekt angezeigt wird?

+1

Was die Werte verbindlich vor auf die Warnung vorbei? '

dcd' + pickupCtrl.pref [i] .addr_l1 + '

' .... – tpsilva

+0

Kann nicht glauben, dass ich nicht darüber nachdachte! Danke, funktioniert wie ein Charme! – jablesauce

Antwort

0

Das Hauptproblem war, dass ich vergessen habe, scope: $scope als Teil der Parameter für das Ionic Popup hinzuzufügen. Im Grunde genommen aus:

title: this.pref[i].label, 
template: popUp, 
buttons: [{ 
    text: 'Cancel' 
}, { 
    text: '<b>OK</b>', 
    type: 'button-positive', 
    onTap: function(e) { 
    // add choice 
    } 
}, ] 

dazu:

title: this.pref[i].label, 
template: popUp, 
scope: $scope, // ADD THIS 
buttons: [{ 
    text: 'Cancel' 
}, { 
    text: '<b>OK</b>', 
    type: 'button-positive', 
    onTap: function(e) { 
    // add choice 
    } 
}, ]