- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
最近我将 ViewModel 分离到一个单独的 JavaScript 文件中。
var Report = (function($) {
var initialData = [];
var viewModel = {
reports: ko.observableArray(initialData),
preview: function(path) {
// preview report
},
otherFunctions: function() {}
};
return viewModel;
})(jQuery);
这里是HTML和Knockout相关的代码
<script type="text/javascript" src="path/to/report/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
ko.applyBindings(Report, document.body);
});
</script>
HTML 用户界面有一个按钮,单击该按钮可以数据绑定(bind)到 View 模型中的预览功能
<input type="button" name="Preview" id="Preview" class="btnPreview"
data-bind="click: Report.preview('url/to/report')" />
问题 在 $(document).ready() 函数中执行以下行时调用预览方法
ko.applyBindings(Report, document.body);
也就是说,没有用户点击预览按钮预览功能被触发。这种行为的原因可能是什么?当我在 HTML 页面本身中查看模型 JavaScript 时,一切都运行良好。
最佳答案
原因是,您确实在调用预览函数(因为编写 functionName
表示引用该函数,编写 functionName()
表示调用它)。
所以 data-bind="click: Report.preview"
会按预期工作,但不会传递参数。
作为the manual状态(关于不同的主题,但这仍然适用):
If you need to pass more parameters, one way to do it is by wrapping your handler in a function literal that takes in a parameter, as in this example:
<button data-bind="click: function(data, event) { myFunction(data, event, 'param1', 'param2') }">
Click me
</button>
或者在你的情况下:
data-bind="click: function() { Report.preview('url/to/report') }"
另一个解决方案是让 preview() 返回一个函数(实际上几乎是一样的):
preview: function(path) {
return function() {
// ...
}
}
关于javascript - 在 applyBindings 上敲击触发点击绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119767/
我有几个 knockoutjs foreach 模板绑定(bind),它们创建了大约 100 在我的页面上的不同位置 - 除了我后续的 jQuery 调用不起作用,除非我在调试器中停止并在应用 jqu
有没有办法在ko中监听applyBindings事件? 我搜索过谷歌和SO,但找不到方法。答案需要得到支持,即不调用 KO 开发人员将来可能更改的内部函数。 以下question 不相似,因为它询问如
我一直在寻找但找不到 applyBindings() 的文档.第二个参数可以合法包含什么?它可以是一个元素数组吗?它必须是单个元素吗?是否可以通过两次调用 applyBindings 将绑定(bind
HTML Product Name JavaScript 代码 var ProductLine = function(data) {
我知道没有我可以 Hook 的回调机制...但是我可以取消或中止 applyBindings 调用吗? 这很重要,例如,如果我发生异步调用以收集组件模板等。 最佳答案 没有。 KO 中没有中止或取消正
我有一个简单的 html 页面,它是我在客户端使用 jquery、jqueryui 和 knockout 以及来自 Web 服务的一些数据动态创建的。 我用这样的代码动态创建了一些标签: docume
我们正在尝试从 https://codepen.io/ImBobby/pen/keaHp?page=1& 我们有一个非常大的数据集。我们正在尝试实现滚动条,以便客户知道页面没有损坏,只是加载时间比预期
使用 knockout.js在我们当前的项目中,我们已经多次达到这一点。 我如何确保只有在页面上的所有绑定(bind)都被 Knockout 应用后才执行某些 Javascript 代码? 在我的特定
调用 ko.applyBindings() 后生成的 View 是否存在?还是脚手架是异步发生的? 谢谢! 最佳答案 ko.applyBindings是同步调用。 在某些情况下,绑定(bind)有特殊
是否可以在viewModel的dataModel未知的情况下applyBindings?我的问题是 dataModel 结构是在页面上调用 ajax 之后首先知道的,而我对 knockout.js 的
我有几个以下形式的输入: 我想在数据绑定(bind)事件之后使用 Jquery 选择器访问这些。我有以下代码: $(document).ready(function () { ko.appl
您好,我只是想创建输入和 iframe,当我粘贴 YouTube 链接时,iframe 应该随着新的 src 而改变。到目前为止我已经这样做了 id 在脚本中: function MyViewMo
当我们将 Knockout 与 UniformJS 一起使用并在 ko.applyBindings 之前调用 .uniform() 时,下面的代码不起作用? HTML代码:
我有一个聊天室风格的应用程序,每个条目在收到后都会在客户端上进行处理,然后生成一些 html 来显示它。因为某些消息将嵌入工具提示和其他数据位,这些数据使用 knockout 绑定(bind)来显示。
我像这样“动态地”填充我的页面: complete Hello ! View 模型: var viewModel = { myContents: ko.observabl
我将 Knockout 与 html 选择/选项结合使用(请参阅 Fiddle): 10 100 调用 applyBindings 时,此选项被视为字符串。这会导致不良影响。考虑以
最近我将 ViewModel 分离到一个单独的 JavaScript 文件中。 var Report = (function($) { var initialData = []; va
在 KnockoutJS 中,有没有办法在调用 ko.applyBindings 后添加绑定(bind)? ? 最佳答案 原来我的问题的答案和这个一样:Can you call ko.applyBin
请考虑以下 ViewModel 片段: var id, given1, given2; $.get("testSynUfGet.aspx", null, function (data) { i
我正在KnockoutJS中创建简单的应用程序,在这里我需要更多的输入元素来通过单击按钮进行更新。我使用了 ko.applyBindings(viewModel),但它抛出以下错误。 Uncaught
我是一名优秀的程序员,十分优秀!