私のアプリケーションには、jQuery Templates
プラグインを使用して Knockout テンプレートをバインドするバインディングが 1 つあります。Knockout3.x
にアップグレードしてから、次のエラーが表示されるようになりました。
Uncaught SyntaxError: Unable to process binding "template: function (){return { name:'tmpl',foreach:$data.children} }"
Message: Unexpected token )
上記のエラーにより、Knockout ver. 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>