【发布时间】:2015-11-14 11:06:35
【问题描述】:
我正在尝试绑定一个淘汰赛模板,但无法解决问题,我尝试过一百万种方法。
我现在对任何想法都很迷茫,我从几天以来一直在调试它。
在其他页面上也获取了相同的模板,并且工作正常。
我尝试打印 $data 对象,它显示数据可用,但是在同一个模板上它没有绑定 值。
我收到了Uncaught TypeError: Unable to process binding "with: function (){return selectedView }"
Message: Unable to process binding "template: function (){return {name:templateName,data:data} }"
由于模板未绑定,因此基本上是一连串错误。
这是一些视图代码:
#page-hold{data: {role: 'page', theme: 'a'}}
.container{ "data-bind" => "with: selectedView"}
%div{ "data-bind" => "template : {name: templateName, data: data}" , data: {role: 'content'}}
%script{ "id" => "tpl_landing", "type" => "text/html"}
//html partials
数据对象如下所示
{
"views": [
{
"title": "landing",
"templateName": "tpl_landing",
"data": {
"base": {
/// data
}
最新更新:我对问题有了更深入的了解,经过更多调试后,我发现 viewModel($data object) 可以在 iframe 中访问,但确实如此除了 $data 对象之外,不要在页面上绑定或输出任何内容,这为我提供了所有数据的 JSON。想知道为什么当我看到它存在时数据没有被绑定。
谁能帮我调试一下?
谢谢
【问题讨论】:
-
也许您可以在 Google Chrome 中尝试您的应用程序,这可能会提供有关错误的更多详细信息。
-
我已经在使用 Chrome 了,这就是它返回的全部内容。有没有更好的方法来利用页面上的 $data 对象?谢谢。
-
如果您在开发者工具打开的情况下运行您的页面,您还应该获得错误的堆栈跟踪。你能试试吗?还有关于 TypeError 是由什么引起的更多细节吗?
-
我在无休止地挖掘之后发现的唯一具体原因是试图将 $data 绑定到 iframe,尽管我没有成功实现它,但我正在尝试类似:jsfiddle.net/sujesharukil/NnT78/10但是当我在我的 js 文件中的 ko.applyBindings 之前发布它时,它会返回错误并且无法运行。
-
那个jsFiddle有从JS代码生成的iframe内容。这是您正在做的事情还是正在加载单独的 HTML 页面?见jsfiddle.net/mbest/GYRUX
标签: javascript knockout.js data-binding binding