我正在尝试在Meonoric IonPopup中建立评分表。我有一个按钮来显示表格:

Template.thing.events({
  'click [data-action="showReview"]': function(event, template) {
    IonPopup.show({
      title: 'Leave a review',
      cssClass : '',
      templateURL: 'reviewPopup.html',
      buttons: [{
        text: 'Cancel',
        type: 'button-default',
        onTap: function(e) {
          e.preventDefault();
        }
      }, {
        text: 'OK',
        type: 'button-positive',
        onTap: function(e) {
          return scope.data.response;
        }
      }]
    });
  }
});


理想情况下应该将reviewPopup.html放在体内

reviewPopup.html

<template name="reviewPopup">
    {{#if currentUser}}
        Rating: {{> rating}}
    {{/if}}
</template>

<template name="rating">
    <div class="rateit"></div>
</template>


但是我似乎无法使templateURL选项正常工作。这两个模板位于同一目录中。我以为我给了它一个文件名并且只是将该文件的内容插入正文中就正确了吗? IonPopup.show的文档说:

templateUrl: '', // String (optional). The URL of an html template to place in the popup   body.

最佳答案

似乎您是在参考ionic文档-流线型遵循ionic约定,但并不太紧密,以至于您可以假设实现是相同的。使用流星的最佳方法是研究示例流星应用程序和looking through their code

在这种情况下,the relevant code from the meteoric repo看起来像这样:

// Figure out if a template or just a html string was passed
var innerTemplate = '';
if (options.templateName) {
  innerTemplate = Template[options.templateName].renderFunction().value;
} else if (options.template) {
  innerTemplate = '<span>' + options.template + '</span>';
}


..如此看来您要使用templateName:和模板的名称,而不是离子的templateURL
希望有帮助!!

10-04 22:33