1
我的應用程序有一個使用jQuery Templates
插件綁定Knockout模板的綁定。由於升級到淘汰賽3.x
我開始看到一個錯誤:帶Knockout 3和jQuery模板的意外令牌
Uncaught SyntaxError: Unable to process binding "template: function(){return { name:'tmpl',foreach:$data.children} }"
Message: Unexpected token)
上述錯誤不允許我結合升級到版本淘汰賽後,開始工作。 3.x
(例如3.4.0
)。使用舊版本(例如2.1.0
)它可以正常工作。
該錯誤可能是由與jQuery Templates
插件有衝突引起的。不幸的是,我必須在我的應用程序中使用它。
可能是什麼原因和解決方案?
var viewModel = function() {
var self = this;
self.children = ko.observableArray(
[{}]
);
};
ko.applyBindings(new viewModel());
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script src="https://rniemeyer.github.com/KnockMeOut/Scripts/jquery.tmpl.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-debug.js"></script>
<div data-bind="template: { name: 'tmpl', foreach: $data.children }">
</div>
<script id="tmpl" type="text/html">
<div data-bind="template: { name: 'tmpl', foreach: $data.children, templateOptions: { parentList: $data.children } }">
</div>
</script>
是否有使用,而不是jQuery的模板特殊原因內置的模板引擎? – Tomalak
是的,我認爲是,代碼是使用jQuery模板綁定數據以查看的應用程序的一部分。沒有它,它不會運行:http://jsfiddle.net/piglin/UAcC7/1837/ –
那麼,jQuery模板看起來和工作完全不同,從淘汰賽模板。您正嘗試在jQuery模板引擎中使用挖掘模板。比較[文檔](http://knockoutjs.com/documentation/template-binding.html#note-6-using-jquerytmpl-an-external-string-based-template-engine)。我仍然認爲你根本不需要jQuery模板引擎。 (「沒有它就不會運行」並不是一個非常令人信服的理由。) – Tomalak