如果语句和挖空中的可见绑定不起作用
If statement and visible binding in knockout not working
我正在尝试根据div 的用户数量显示一个div。如果div 包含超过 x 个用户,则在用户上方显示div,如果没有,则不显示。我通过 foreach 循环显示用户。
视图:
<div class="collapse in" data-bind="template: { name: 'list', foreach: $data.Users }">
</div>
<script type="text/html" id="list">
<!-- ko if: ShowLetter -->
<div id="letter" data-bind=" text: Letter"></div>
<!-- /ko -->
</script>
在我看来,我也尝试过这个:
<div id="letter" data-bind="visible:ShowLetter, text: Letter"></div>
但是当我呈现页面时,要么没有收到字母,要么字母会显示给一组小于 x 个数字的用户。我的结果显示三组第一组只有 1 个用户,不应该显示字母 - 第二组有 2 个用户,也不应该显示字母,第三组有 30 个用户,应该显示字母。
Javascript:
var userViewModel = function (data) {
var _self = this;
_self.Name = ko.observable(data.Name);
_self.Letter = ko.observable(data.Letter);
_self.ShowLetter = ko.computed(function () {
return (roleViewModel.UserCount > properties.RoleUser);
});
};
var typeViewModel = function (data) {
var _self = this;
_self.ContentType = ko.observable(data.ContentType);
_self.Name = ko.observable(data.Name);
_self.Rank = ko.observable(data.Rank);
_self.UserCount = ko.observable(data.UserCount);
_self.Users = ko.observableArray([]);
};
如何使我的视图在 foreach 中的每个组循环中正常运行?
由于属性 ShowLetter 是计算的可观察量,因此您必须调用它,否则您只是传递原型...
例如。将
或 data-bind="visible:ShowLetter, text: Letter"将是 data-bind="visible:ShowLetter(), text: Letter"
那应该照顾好它。
在你的计算中,你想要调用roleViewModel.UserCount()(不确定RoleUser),因为它是一个可观察的。否则一切看起来都很好,尽管缺少一些代码。
相关文章:
- 对象文字方法上的Javascript绑定不起作用
- Knockout输入绑定不起作用
- 角度指令双向绑定不起作用
- 指令中选择输入的双向绑定不起作用
- Angularjs:ui路由嵌套状态下的绑定不起作用
- 为什么我的淘汰选项绑定不起作用
- jQuery Ajax 元素的后期绑定不起作用
- 样式绑定不起作用
- 在内联编辑的情况下,Knockout绑定不起作用
- 指令链接中的绑定不起作用
- Angular 1.5组件双向绑定不起作用
- 点击处理程序多次触发,解除绑定不起作用
- KnockoutJS - 引导程序 3 模式绑定不起作用
- foreach:绑定不起作用 ko.mapping.fromJS 数据
- 虚拟元素的挖空绑定不起作用
- 委托的“模板”绑定不起作用
- Angularjs 双向数据绑定不起作用;$watch也不起作用
- 使用 D3js 时,带有 DOM 的 AngularJS 数据绑定不起作用
- 视频播放事件中的 Angular 2 路绑定不起作用
- 如果语句和挖空中的可见绑定不起作用