1

我的申请是基于淘汰赛的,对我来说最大的障碍如下:

  1. 我已在主父文件中附加了所需的 JS 文件
  2. 我使用了一种方法在 iFrame 中引用这些文件。例如 jQuery 仅在父级中定义,只需从 iframe 中引用它,在 iframe 中定义它的对象。
  3. 同样,我能够定义淘汰对象并使用它,但是问题是 - iframe 页面上的绑定不起作用
  4. 如果我使用警报来检查淘汰赛的功能是否有效,它正在工作。只有表单字段和数据绑定不起作用

有什么线索吗?

这是代码:父文件(在头下):

 <script type="text/javascript" src="Scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui-1.8.20.min.js"></script>

(身体下方)

<iframe src="IframePage.html" width="100%" height="100%" id="popUpIframe" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto"></iframe>

框架文件:

<script type="text/javascript">   
    var $ = parent.$;
    var ko = parent.ko;    
    $(document).ready(function () { 
        var ViewModel = function (first, last) {
            this.firstName = ko.observable(first);
            this.lastName = ko.observable(last);

            this.fullName = ko.computed(function () {
                alert(this.firstName() + " " + this.lastName());
                return this.firstName() + " " + this.lastName();
            }, this);
        };        
         ko.applyBindings(new ViewModel("Kawal", "Babra"));
    });
</script>
<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>
<h2>Hello, <span data-bind="text: fullName"> </span>!</h2>
4

1 回答 1

0

只需将根元素指定为 iframe 文档中的一个元素,例如:

ko.applyBindings(Model, document.body);

这是一个工作示例:http: //jsfiddle.net/rD8uR/

这是 iframe 文档: http: //fiddle.jshell.net/KkPdE/show/light/

于 2013-03-19T12:38:45.720 回答