2013-03-01 30 views
4

我將Knockout添加到大型應用程序的特定部分。其他部分使用jQuery模板(它嵌入在一個基本的JS文件中),所以它在全局jQuery對象上,我無法刪除它。使用jQuery.tmpl停止KnockoutJS

我遇到以下錯誤消息當我使用foreach在模板結合:

This template engine does not support the 'foreach' binding within its templates 

似乎使用帶有淘汰賽jQuery的模板引擎時,這是一個問題。 有沒有什麼辦法讓Knockout使用它的默認模板引擎而不是jQuery模板?

回答

13

在致電ko.applyBindings之前,您可以使用ko.setTemplateEngine(new ko.nativeTemplateEngine());

+0

再次保存一天。謝謝! – 2013-03-01 18:18:50

+0

@NP Niemeyer我很好奇這個語法是如何表現的。乍一看,我不希望在調用函數'ko.nativeTemplateEngine()'時使用'new'關鍵字。我試着自己運行這個函數,並且你什麼也得不到,但是如果你添加'new'關鍵字,實際上它就是創建一個新的對象。介意在這裏提供一些見解? – 2014-01-16 17:53:19

+0

@FeistyMango - 'ko.nativeTemplateEngine'是一個構造函數。當用'new'調用它時,'this'的值被設置爲一個具有正確原型的新實例(對象)。 – 2014-01-16 19:12:38