0
我想,如果声明knockoutjs与数据绑定使用:如果knockoutjs约束力不工作
例如这是否应该是假的,并在格文应该被隐藏:
<!-- this is what i am trying to get working. -->
<div data-bind="if: little">rank : little</div>
我的猜测这件作品是否按预期工作。它应该返回false,因为开始时的clickCount为0.
this.little = function(){
return this.clickCount() > 5;
};
我粘贴了app.js和index.html的代码。
这是app.js
var ViewModel = function(){
this.clickCount = ko.observable(0);
this.name = ko.observable('Tabby');
this.imgSrc = ko.observable('img/2.jpg');
this.imgAttribution = ko.observable('http://www.flickr.com/photos/big');
this.incrementCounter = function() {
this.clickCount(this.clickCount() + 1);
};
// this is not returning false as it should.
this.little = function(){
return this.clickCount() > 5;
};
}
ko.applyBindings(new ViewModel());
这是index.html的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Cat Clicker</title>
</head>
<body>
<div>
<h2 data-bind="text: name"></h2>
<div data-bind="text: clickCount"></div>
<!-- this is what i am trying to get working. -->
<div data-bind="if: little">rank : little</div>
<img src="" alt="cute cat" data-bind="click: incrementCounter, attr:{src: imgSrc}">
</div>
<script src="js/lib/knockout-3.2.0.js"></script>
<script src="js/app.js"></script>
</body>
</html>
作为一个函数,“小”是永远是真的。测试'小()'而不是。 –
就像@RoyJ所说的,很少有一个函数,只是因为它存在它的计算结果为真。在Knockout中进行调试的一个好方法是用'text'替换你的'if's。用'little'和'little()'写出你的代码。 http://codepen.io/mblarsen/pen/QyXObm – Michael
它可能是你认为你的“小”是一个可计算的可观察值,这就是为什么你没有把这些“()”。 – Adrian