我想顯示一個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個用戶,不應該顯示字母 - 第二組有兩個用戶不應該顯示字母,第三組有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()不是特定於每個組,因爲它應該是? – Masriyah
這是不正確的,將導致您的模板失去其活動綁定。您可以使用原始的,可觀察的或可計算的觀察值,而不會在數據綁定中進行任何語法更改。 – AlexG
實際上並沒有破壞綁定... dom元素仍然在變化上得到通知 – beauXjames