[英]Applying binding to knockoutjs ViewModel in a bootstrap modal
我正在尝试将淘汰赛出价应用于模态弹出窗口。
我有fowlling ViewModel :
var ViewModel = function () {
var self = this;
self.radioSelectedOption = ko.observable("optionFreeText");
// It only show textarea when free text message option value is selected
self.hasFreTextMessageSelected = ko.computed(function () {
return (self.radioSelectedOption() === "optionFreeText");
});
}
以及下面的HTML模式 :
<section id="test-modal" class="modal fade" tabindex="-1" data-width="760">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">Enviar Mensagem</h4>
</div>
<div class="modal-body">
<div class="form-body">
<div class="form-group">
<label>Tipo de Mensagem</label>
<div class="radio-list">
<label class="radio-inline">
<input type="radio" data-bind="checked: radioSelectedOption" name="optionsRadiosMessageType" id="optionRadioFreeText" value="optionFreeText" class="make-switch optionsRadiosMessageType" checked>
Livre
</label>
<label class="radio-inline">
<input type="radio" data-bind="checked: radioSelectedOption" name="optionsRadiosMessageType" id="optionRadioStateRefresh" value="optionStateRefresh" class="make-switch optionsRadiosMessageType">
Pedido de Estado
</label>
</div>
</div>
<div for="textareaFreeText" class="form-group" data-bind='visible: hasFreTextMessageSelected'>
<label>Texto</label>
<textarea id="textareaFreeText" class="form-control" rows="3"></textarea>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-default">Cancel</button>
<button type="button" class="btn blue">Enviar</button>
</div>
</section>
然后在准备文件的情况下 :
ko.applyBindings(new ViewModal());
当我第一次完美地运行代码时,但在第一个模态处理后它停止工作。 ViewModel在第一次处理后永远不会更新,但我可以获得旧值。
它看起来像是被删除的绑定(但它不是)。 如果我再次尝试绑定它,我得到了敲门异常“你不能多次将绑定应用于同一个元素”......
我认为你这里有很多错别字,往往会打破Knockout绑定。
例如:
var ViewModel = function () {...}
ko.applyBindings(new ViewModal() );
self. radioSelectedOption
self. radioSelectedOption
data-bind="checked: radioSelectedOptionMessage"
(self.radioSelectedOption() === " optionPreDefined "
一旦你解决了这些问题,生成的代码应该可以工作:
此外,在使用var self = this
技巧时,您不必this
作为第二个参数传递给计算属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.