我有一个用淘汰赛构建的应用程序,它使用一个名为redactor的所谓的wysiwyg(不是我认为这与这个问题有关,但以防万一)
我刚遇到一个用户有iPad的问题,当他们保存一个'笔记'时,它每次丢失最后一个字母 - 没有其他人曾经遇到过这个问题。
很明显,这是由于最后一次按键没有更新的基础文本区域,但我不知道如何解决这个问题。
我有一个自定义绑定如下
<ul class="suggestions-list">
<li ng-repeat="suggestion in items track by $index" ng-class="{active : selectedIndex === $index}" ng-click="AssignValueAndHide($index)" data-ng-bind="suggestion"></li>
</ul>
如何更改此设置以确保其在iPad上的行为符合预期并在最终按键时更新?或者是否有一种方法可以在更新中强制更新ko.bindingHandlers.redactor = {
init: function(element, valueAccessor) {
var value = valueAccessor();
if (ko.isObservable(value)) {
$(element).redactor({
changeCallback: value,
fileUpload: 'url',
fileManagerJson: site_URL + 'files/files.json',
plugins: ['filemanager', 'clips', 'textexpander', 'bufferbuttons'],
textexpander: [
["##s", "<strong>(S)</strong> - "]
]
});
}
},
update: function(element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()) || '';
if (value !== $(element).redactor('core.getTextarea').val()) {
$(element).redactor('code.set', value );
}
}
}
/ keyPress
。
答案 0 :(得分:1)
文档中的代码示例检索小部件值,如下所示:
$('#redactor').redactor({
callbacks: {
change: function()
{
console.log(this.code.get());
}
}
});
换句话说,他们在回调体中调用this.code.get()
。
另一方面你的设置......
$(element).redactor({
changeCallback: value
});
它隐式使用回调的第一个参数作为值。
如果您使用文档建议的相同方法,它会有所作为吗?
$(element).redactor({
changeCallback: function () {
value(this.code.get());
});
});