Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剔除中的If语句和可见绑定不起作用_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 剔除中的If语句和可见绑定不起作用

Javascript 剔除中的If语句和可见绑定不起作用,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我试图根据div的用户数显示div。如果div包含的用户数超过x,则在用户上方显示div。如果没有,则不显示。我通过foreach循环显示用户 视图: 如何使我的视图在foreach中的每个组循环中正常运行?由于属性ShowLetter是一个计算的可观察对象,您必须调用它,否则您只是传递原型 例如。 会是 或数据绑定=“可见:显示字母,文本:字母” 将是data bind=“可见:ShowLetter(),text:Letter” 这应该可以解决问题。在您的计算机中,您希望调用roleViewM

我试图根据div的用户数显示div。如果div包含的用户数超过x,则在用户上方显示div。如果没有,则不显示。我通过foreach循环显示用户

视图:


如何使我的视图在foreach中的每个组循环中正常运行?

由于属性ShowLetter是一个计算的可观察对象,您必须调用它,否则您只是传递原型

例如。 会是

或数据绑定=“可见:显示字母,文本:字母” 将是data bind=“可见:ShowLetter(),text:Letter”


这应该可以解决问题。

在您的计算机中,您希望调用roleViewModel.UserCount()(不确定RoleUser),因为它是可观察的。否则,尽管缺少一些代码,但一切看起来都很好。

当我应用此方法时,没有一个字母出现在它应该出现的地方。因此,我的结果返回三个组,每个组包含多个用户。ShowLetter()是否可以按其应有的方式特定于每个组?这是不正确的,将导致模板丢失其活动绑定。你可以使用原语,在数据绑定中没有任何语法更改的情况下可观察或计算可观察。实际上不会破坏绑定…dom元素仍然会收到更改通知…更多代码==更好的重复…展示您的绑定以及如何设置一切…制作一个模拟您的situation@beauxjames我提供了一个与之非常相似的jsfiddle我想得到的是:不清楚您是希望每个viewmodel都有一个secondModel,还是它是一个共享的单例,但是您忘记了实例化secondModel:
<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>
 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([]);
    };