我有一个主文件(periods.js),通过点击绑定自定义对话框打开:
periods.js
[...]
openAddFreeDayDialog = function () {
var dialog = {viewUrl: 'views/addFreeDay'};
app.showDialog(dialog);
},
addFreeDay = function () {
var data = $('#addFreeDay').serializeArray();
},
[...]
periods.html
[...]
<button type="button" class="btn btn-success btn-block" data-bind="click:$root.openAddFreeDayDialog"><i class="fa fa-plus-circle fa-lg"></i> new</button>
[...]
函数openAddFreeDayDialog
打开这个模态:
addFreeDay.html
<div class="modal-content autoclose">
<div class="modal-header">
<h3 class="modal-title">freien Tag hinzufügen</h3>
<small>Dauert der dieser freie Tag nur einen Tag müssen Entdatum und Startdatum übereinstimmen</small>
</div>
<div class="modal-body">
<form id="addFreeDay">
<div class="form-group">
<label for="dayName">Bezeichnung für diesen Tag </label>
<input type="text" class="form-control" id="dayName">
</div>
<div class="form-group">
<label for="dayStartDate">Anfagsdatum des Tages </label>
<input type="date" class="form-control" id="dayStartDate">
</div>
<div class="form-group">
<label for="dayEndDate">Enddatum des Tages </label>
<input type="date" class="form-control" id="dayEndDate">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success btn-lg btn-block" data-bind="click:$addFreeDay"><i class="fa fa-plus-circle fa-lg"></i>other new</button>
</div>
</div>
我想通过单击绑定主文件的其他功能来调用此对话框:
<button type="button" class="btn btn-success btn-lg btn-block" data-bind="click:$addFreeDay"><i class="fa fa-plus-circle fa-lg"></i>other new</button>
我尝过很多人的想法:click:addFreeDay
,click:addFreeDay
,click:$root.addFreeDay
,click:periods.addFreeDay
,click:$periods.addFreeDay
,click:$root.periods.addFreeDay
有时候它会给我一个错误。我错了什么?
答案 0 :(得分:0)
您是否有相应的 periods.html 文件作为视图?
在 periods.html 文件中,您将获得标记,包括click
绑定。后面的viewModel - periods.js 文件 - 将包含点击的事件处理程序,您可以在其中调用对话框。这两个文件在Durandal和Aurelia中组成一个MVVM单元。
根据您的构图结构,您很可能会使用$data.addFreeDay.bind($data)
作为处理程序来访问该函数。但是,根据您的结构,它也可以很容易$parent.addFreeDay.bind($parent)
或$root.addFreeDay.bind($root)
。