我正在構建的應用程序需要使用iframes進行wysiwyg文本編輯,並且這些iframe需要連接到viewModel,但是我發現這與淘汰賽衝突......或者至少淘汰賽似乎不是當我嘗試通過父對象訪問它們時應用綁定。淘汰賽:通過iframe訪問視圖模型?
下面是一些代碼...
<script type="text/javascript">
$(function(){
ko.applyBindings(parent.model.project, $('#root')[0]);
});
</script>
<ul id="root" data-bind="template: {name: function(){return type()},
foreach: populate() }"></ul>
<script id="document" type="text/html">
<li class="draft" draft="${draft()}" data-bind="css: {expanded: $data.expanded}">
<span data-bind="click: function(){parent.model.project.expand($data, 'draft')}">
${ordinal(draft())} Draft
<img src="icons/close-black.png"
data-bind="click: function(){parent.model.project.deleteDraft($data)},
css:{ only: function() {parent.model.project.drafts > 1} }"/>
</span>
<div>
<ul data-bind="css: {expanded: $data.expanded},
template: {
name: 'draft',
foreach: $data.draftItems,
}"
>
</ul>
</div>
</li>
</script>
<script id="draft" type="text/html">
{{if $data.name}}
<li class="${name}">${name}</li>
{{/if}}
</script>
OK,這是不是一個所見即所得的文本編輯器,但它仍然說明了我的觀點。
現在的事情是,當我寫這個它完美的工作。我有viewModel的一部分,所有的綁定引用定義在一個js文件只能通過這個html訪問...但我需要相同的ViewModel訪問父窗口,因爲我會用一個wysiwyg編輯器的工具欄按鈕和其他的外部控件,所以我將viewModel的那部分移動到其中定義其餘部分的文件中,現在它不起作用!
在我以前的外部文件中,我仍然使用parent.model訪問父視圖模型,但現在沒有對該模型的直接獨佔訪問,它似乎不工作。問題是,雖然我可以通過console.log訪問視圖模型,但是我也可以從中讀取document.write,它將事件觸發回viewModel,並且我的視圖最初會更新,但是在初始化之後它不再更新。
有沒有辦法解決這個問題?
您使用的是哪種版本的淘汰賽? –
我使用的是1.2.1版本,但現在我進入了1.3測試版。它仍然沒有更好的這個問題! – cybermotron