挖空 2.0 无法解析绑定
Knockout 2.0 Unable to parse bindings
最近我从另一个开发人员那里得到了一堆代码,我应该使用这些代码来构建其他功能。不幸的是,我无法在本地运行它。奇怪的是,我应该使用的门户在服务器上运行得很好,但是当我尝试在本地运行它时,我收到以下异常
Uncaught Error: Unable to parse bindings.
Message: SyntaxError: Unexpected identifier;
Bindings value: css: {
'make-primary':(lala.viewModels.transacFilterTabsViewModel.getSyncList().resultsetLength() > 0 && !lala.viewModels.transacQuickactionsViewModel.operationInProgress() && (lala.viewModels.transacFilterTabsViewModel.getSyncList().captureButtonIsEnabled() || lala.viewModels.transacFilterTabsViewModel.getSyncList().refundButtonIsEnabled()Â || lala.viewModels.transacFilterTabsViewModel.getSyncList().abortButtonIsEnabled())),
我注意到的一件奇怪的事情是,在.refundButtonIsEnabled()块周围显示了一个奇怪的字符("Â"),在我使用谷歌Chrome开发控制台工具之前,我的代码看不到该字符。因此,我的理论是我的本地主机设置可能有问题。
为了运行此代码,我正在使用:
Mac OSX El Capitan
Netbeans 8.1
Apache 2 (httpd24)
运行代码而没有任何错误的咕噜声
淘汰赛 2.0
我的 html 代码是:
<div class="span6 actions-panel-bottom" data-bind="css: {
'make-primary': (lalal.viewModels.transacFilterTabsViewModel.getSyncList().resultsetLength() > 0 && !lalal.viewModels.transacQuickactionsViewModel.operationInProgress() && (lalal.viewModels.transacFilterTabsViewModel.getSyncList().captureButtonIsEnabled() || lalal.viewModels.transacFilterTabsViewModel.getSyncList().refundButtonIsEnabled()|| lalal.viewModels.transacFilterTabsViewModel.getSyncList().abortButtonIsEnabled()))">
和
'parseBindingsString': function(bindingsString, bindingContext, node) {
try {
var bindingFunction = createBindingsStringEvaluatorViaCache(bindingsString, this.bindingCache);
return bindingFunction(bindingContext, node);
} catch (ex) {
throw new Error("Unable to parse bindings.'nMessage: " + ex + ";'nBindings value: " + bindingsString);
}
}
});
我想提一下,在代码失败之前,其他几个绑定将成功运行,并将在"make-primary"处停止,它将添加这个奇怪的字符。
提前谢谢你!如果您对如何调试这种情况有任何提示,我将不胜感激!
似乎
与KO 2.0特别相关。我在那里收到错误,但不是在 3.0 中。这是一个非常可怕的绑定。通常,绑定应该是简单的表达式,而复杂的表达式应该在视图模型中。
有什么原因不能更新淘汰赛版本吗?
下面的代码片段只是一个最小的重现。将其复制到新代码段,并在更改版本并运行它时观察控制台。
ko.applyBindings({});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.0.0/knockout-min.js"></script>
<div class="span6 actions-panel-bottom" data-bind="css: {
'make-primary': (lalal.viewModels.transacFilterTabsViewModel.getSyncList().resultsetLength() > 0 && !lalal.viewModels.transacQuickactionsViewModel.operationInProgress() && (lalal.viewModels.transacFilterTabsViewModel.getSyncList().captureButtonIsEnabled() || lalal.viewModels.transacFilterTabsViewModel.getSyncList().refundButtonIsEnabled()|| lalal.viewModels.transacFilterTabsViewModel.getSyncList().abortButtonIsEnabled()))"></div>
相关文章:
- 挖空 HTML 绑定和字符串格式的 HTML 长度
- 挖空和显示模块模式的数据绑定问题
- 具有 json 的挖空绑定复选框组
- 挖空绑定复选框组
- 挖空选项对象绑定
- 挖空 JS 样式绑定导致错误
- 挖空、视图模型位于其他对象和数据绑定中
- 如何将经度/经度值绑定到挖空视图模型方法
- 挖空 JS html 绑定返回奇怪的代码而不是 html 字符串
- 挖空 - 单击绑定到对象函数 - 范围问题
- 挖空 JS - 数据绑定多个值
- 如何绑定仅可用键的挖空视图模型
- 挖空:无法将数量变化与购物车中的总成本绑定
- 挖空JS绑定不输出简单视图模型的值
- 挖空.js使用 $index 和 if 绑定
- $scope绑定到空值数组 AngularJs
- 如果绑定为空,则为 Angular 默认值
- 未捕获错误:无法分析绑定挖空
- 如果绑定为空/未定义(带过滤器),Angularjs模板默认值
- Angularjs没有正确绑定到空数组