我尝试将一段代码从纯JavaScript迁移到Aurelia
,我似乎无法弄清楚以下代码(在视图模型中执行):< / p>
var callbackFunction = 'DmsToWorkflowsCallback';
var treeEnum = new BrowseTreeNodeEnums();
var contentType = treeEnum.Document;
var url = dmsUrlPrefix +
"BrowseDlgEx.aspx?" +
"multiSelect=1" +
"&title=Attach" +
"&callback=" + callbackFunction +
"&contentType=" + contentType +
"&context=btworkflows;" + domain;
window.open(url, "_blank", "height=600, width=800,status=0,toolbar=0,menubar=0,location=no,modal=1,dialog=yes,top=100,left=100");
在纯JavaScript中,调用窗口(没有文档的自定义插件)能够找到回调函数(第1行)并正确执行其余的业务逻辑;然而,在Aurelia,它似乎无法找到所提供的功能!
我尝试在类内外指定回调函数(使用常规函数声明),并使用this.DmsToWorkflowsCallback
作为回调函数规范,但没有成功...
我甚至尝试使用<script>
标记在视图中添加一个虚拟回调函数,但仍然无法获得一个突破点!
如果有人有任何建议我会非常感激!
答案 0 :(得分:0)
您只需在window
对象上设置回调函数即可。如果您要调用的函数是VM上的函数,那么最好将调用包装在胖箭头函数中:
window.theCallback = () => this.theCallback();
window.open('http://localhost:9000/foo.html', '_blank');
然后,在子页面中,您将使用opener
引用调用此函数。
opener.theCallback();