角度表达式未在Ionic弹出窗口中正确评估

时间:2016-08-08 16:27:57

标签: javascript angularjs ionic-framework expression

我正在尝试显示控制器范围内的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”文本。这意味着我调用表达式本身的方式有问题。

如何在模板中指定变量以便正确显示?

1 个答案:

答案 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
  }
}, ]