我正在尝试显示控制器范围内的JSON对象的数据。这将发生在调用Ionic弹出窗口的函数中。我想要做的是在一个模板中显示这些数据,该模板将用于构建弹出窗口本身。以下功能驻留在控制器内:
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
}
}, ]
});
}
由于某种原因,模板没有显示Angular表达式,但它确实显示我作为测试添加的“dcd”文本。这意味着我调用表达式本身的方式有问题。
如何在模板中指定变量以便正确显示?
答案 0 :(得分:0)
主要问题是我忘记添加scope: $scope
作为Ionic Popup参数的一部分。基本上来自:
title: this.pref[i].label,
template: popUp,
buttons: [{
text: 'Cancel'
}, {
text: '<b>OK</b>',
type: 'button-positive',
onTap: function(e) {
// add choice
}
}, ]
到此:
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
}
}, ]