Javascript 生成的 HTML 代码调用 KNOCKOUT
Javascript generated HTML code calling knockout
不确定这是否可能,但在这里。
我有一个包含两个主要文件的应用程序 - 一个javascript文件和一个HTML文件,我正在使用KNOCKOUT.js,bootstrap和jquery。
在 js 文件中的一个函数中,我生成了一个 html 表单。我不能让 html 文件中的表单不可见 - 它必须在 js 文件中生成。
问题是,我在表单上呈现按钮,这些按钮调用 js 文件中的 KNOCKOUT 函数,但它们不起作用。我可以使用javascipt引用这些按钮,但这不起作用,因为我需要将挖空模型传递给表单。
代码如下:
在 js 文件中:
self.helloFunction = function () {
alert("Hello World");
}
在 html 文件中(按预期工作):
<div>
<input type="image" src="/Images/Buttons/edit.png" data-bind="click: $root.helloFunction" class="input-sm">
</div>
在 JS 文件中(不会回调 helloFunction):
var helloWorld = '<div>' +
'<input type="image" src="/Images/Buttons/edit.png" data-bind="click: '$root.helloFunction" title="Hi" class="input-sm">' +
'</div>';
//display the html on the page:
displayForm(helloWorld);
它显示良好,标题和图像显示,引导格式已应用。只是淘汰赛(对helloWorld)没有回应。
是否可以返回并调用我的淘汰函数?
如果在调用 applyBindings
后向不使用 Knockout 的页面添加内容,Knockout 无法知道它必须处理这些元素。为此,您需要告诉 Knockout 将绑定应用于这些新元素,使用 applyBindings
(但要注意避免在同一元素上调用它两次)或未记录的applyBindingsToNode
或applyBindingsToDescendants
。
例:
var vm = {
msg1: ko.observable("Hi there"),
msg2: ko.observable("This was bound later; click me!"),
clicker: function() {
alert("clicker was clicked!");
}
};
ko.applyBindings(vm, document.body);
setTimeout(function() {
var newContent = $('<input type="button" data-bind="value: msg2, click: clicker">');
newContent.appendTo("#container");
ko.applyBindings(vm, newContent[0]);
}, 500);
<div id="container">
<div data-bind="text: msg1"></div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
相关文章:
- 如何使用Javascript或jQuery代码调用mousemove
- 反汇编的javascript jit代码调用未知函数
- 从node.js代码调用javascript代码
- 如何使用javascript代码调用服务器端函数;标记函数“>
- 从本机 java 代码调用 JS 事件
- 如何从本机 Java 代码调用 JS
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- Javascript 生成的 HTML 代码调用 KNOCKOUT
- 检测用户触发的 jquery 事件或代码调用
- 使用 jquery 从动态添加的 html 代码调用函数
- Metro Style App:如何从 Web 视图控件中运行的 JavaScript 代码调用 C# 方法
- 如何从 JavaScript 代码调用 StorageProcedure
- 从 C# Web 应用程序背后的代码调用 JavaScript 函数
- 如何通过 JavaScript 代码调用 C# Web 服务
- 从遗留代码调用 AngularJS
- Javascript 函数不是从按钮单击背后的代码调用的
- AJAX:如何从 AJAX 方法背后的 C# 代码调用 javascript 函数
- 如何防止恶意代码调用我的 JavaScript
- 从VB.NET背后的代码调用单击事件或JQuery函数
- 从服务器端代码调用弹出窗口