1

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 数未満のユーザーのグループに文字が表示されます。私の結果は、3つのグループを示しています.1番目のグループには1人のユーザーしかいないため、文字を表示しないでください.2番目のグループには2人のユーザーがいて、文字を表示する必要はありません.

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 でループしているグループごとにビューを適切に機能させるにはどうすればよいですか?

4

2 に答える 2

0

あなたの計算では、それは観測可能であるため、 roleViewModel.UserCount() (RoleUserについてはわかりません)を呼び出したいと思います。それ以外の場合は、一部のコードが欠落していますが、すべて問題ないように見えます。

于 2013-10-18T07:34:23.163 に答える