所以这就是我想要做的
使用敲除我想要一些只在变量 myvalue 有一些内容时出现
这是我的代码
html
<script type='text/javascript' src="../js/knockout-2.3.0.js" defer="defer"></script>
<script type="text/javascript" src="../js/searchModel.js" defer="defer" ></script>
<h2>Welcome to My World :D</h2>
<div data-bind="visible: myValues().length > 0">
You will see this message only when 'myValues' has at least one member.
</div>
JS
function helloModel() {
// Editable data
this.viewModel = {
myValues: ko.observableArray([]) // Initially empty, so message hidden
};
//viewModel.myValues.push("some value"); // Now visible
}
我总是得到的错误是:
Uncaught ReferenceError: Unable to parse bindings.
Bindings value: visible: myValues().length > 0
Message: myValues is not defined
很可能是因为我添加到脚本标签的属性 defer,这意味着在我渲染整个 html 元素之前不会加载文件
然而,这很重要,我将在以下三种情况下进行解释:
1-推迟淘汰赛而不是搜索模型如下
所以现在搜索模型将在渲染 HTML 元素之前包含在内。但是,这会导致问题,因为它使用 knokout 的代码
Uncaught ReferenceError: ko is not defined
2-推迟搜索模型而不是淘汰赛
<script type='text/javascript' src="../js/knockout-2.3.0.js" defer="defer"></script>
<script type="text/javascript" src="../js/searchModel.js" ></script>
会导致同样的老问题
Uncaught ReferenceError: Unable to parse bindings.
Bindings value: visible: myValues().length > 0
Message: myValues is not defined
3-忘记延迟
<script type='text/javascript' src="../js/knockout-2.3.0.js" ></script>
<script type="text/javascript" src="../js/searchModel.js" ></script>
还会导致以下问题 Uncaught TypeError: Cannot read property 'nodeType' of null
因为脚本将加载到 html 上并尝试在创建元素之前绑定元素
那么你有什么建议来解决这个问题:)