Kendo ui: 无法将文本值和按钮单击事件绑定到动态创建的 HTML 内容的 viewModel
Kendo ui: Cannot bind text value and button click event to viewModel for dynamically created HTML content
我正在使用 Kendo MVVM
并使用 data attribute
将文本字段值和按钮单击事件绑定到 viewModel
。
我可以成功绑定文本框的默认值和最初呈现在页面上的按钮的单击事件。
但是当我动态生成文本框和按钮时,我无法将值和点击事件绑定到 viewModel
。
这是我的作品DEMO。下面是我的代码:
JS:
var viewModel = kendo.observable({
textValue: 1,
buttonClick: function(e) {
alert("button click");
},
generateDynamicContent: function() {
var html = '<input data-bind="value: dynamicTextValue" name="dynamicTextValue"/><input type="button" value="Dynamic Button" data-bind="click: dynamicButtonClick"/>';
$('#dynamicContent').append(html);
},
dynamicTextValue: 2,
dynamicButtonClick: function(e) {
alert("dynamic button click");
},
});
kendo.bind($("#example"), viewModel);
HTML:
<div id="example">
<input data-bind="value: textValue" name="textValue"/>
<input type="button" value="Button" data-bind="click: buttonClick"/>
<br />
<input type="button" value="Generate Dynamic Content" data-bind="click: generateDynamicContent"/>
<br/>
<div id="dynamicContent">
</div>
</div>
试试这个代码
在附加html
后添加kendo.bind($("#example"), viewModel);
var viewModel = kendo.observable({
textValue: 1,
buttonClick: function(e) {
alert("button click");
},
generateDynamicContent: function(e) {
var html = '<input data-bind="value: dynamicTextValue" name="dynamicTextValue"/><input type="button" value="Dynamic Buttondddd" data-bind="click: dynamicButtonClick"/>';
$('#example').append(html);
//--------THIS LINE IS IMPORTANT
kendo.bind($("#example"), viewModel);
},
dynamicTextValue: 2,
dynamicButtonClick: function(e) {
alert("dynamic button click");
},
});
kendo.bind($("#example"), viewModel);
我正在使用 Kendo MVVM
并使用 data attribute
将文本字段值和按钮单击事件绑定到 viewModel
。
我可以成功绑定文本框的默认值和最初呈现在页面上的按钮的单击事件。
但是当我动态生成文本框和按钮时,我无法将值和点击事件绑定到 viewModel
。
这是我的作品DEMO。下面是我的代码:
JS:
var viewModel = kendo.observable({
textValue: 1,
buttonClick: function(e) {
alert("button click");
},
generateDynamicContent: function() {
var html = '<input data-bind="value: dynamicTextValue" name="dynamicTextValue"/><input type="button" value="Dynamic Button" data-bind="click: dynamicButtonClick"/>';
$('#dynamicContent').append(html);
},
dynamicTextValue: 2,
dynamicButtonClick: function(e) {
alert("dynamic button click");
},
});
kendo.bind($("#example"), viewModel);
HTML:
<div id="example">
<input data-bind="value: textValue" name="textValue"/>
<input type="button" value="Button" data-bind="click: buttonClick"/>
<br />
<input type="button" value="Generate Dynamic Content" data-bind="click: generateDynamicContent"/>
<br/>
<div id="dynamicContent">
</div>
</div>
试试这个代码
在附加html
后添加kendo.bind($("#example"), viewModel);
var viewModel = kendo.observable({
textValue: 1,
buttonClick: function(e) {
alert("button click");
},
generateDynamicContent: function(e) {
var html = '<input data-bind="value: dynamicTextValue" name="dynamicTextValue"/><input type="button" value="Dynamic Buttondddd" data-bind="click: dynamicButtonClick"/>';
$('#example').append(html);
//--------THIS LINE IS IMPORTANT
kendo.bind($("#example"), viewModel);
},
dynamicTextValue: 2,
dynamicButtonClick: function(e) {
alert("dynamic button click");
},
});
kendo.bind($("#example"), viewModel);