2013-10-10 3 views
0

Я хочу добавить оператор if, проверяющий количество пользователей перед заголовком заголовка.Добавление инструкции knockout if на странице cshtml razor

<div> 
    <span data-bind="text:Name()"></span> 
    <span class="userCount">(<span data-bind="text:UserCount()"></span>)</span> 
</div> 

<script type="text/html" id="list"> 
    //Want to add if statement here to check if the UserCount() is greater than 13 
    <h3 id="letter" data-bind="text: Letter"></h3> 
    ...... 
</script> 

Как я могу добавить оператор if для проверки для usercount()?

ViewModel:

var rViewModel = function (data) { 
     var _self = this; 
     _self.ContentRole = ko.observable(data.ContentRole); 
     _self.Name = ko.observable(data.RoleName); 
     _self.Rank = ko.observable(data.RoleRank); 
     _self.UserCount = ko.observable(data.UserCount); 
     _self.Users = ko.observableArray([]); 
    }; 
+0

@MattBodily я использую привязки данных (нокаут), чтобы получить мою информацию, как UserCount и я не могу сделать '@If (данные привязки =«UserCount()»)' – Masriyah

ответ

3
@if (Model.UserCount() > 13) { 
    <h3 id="letter" data-bind="text: Letter"></h3> 
} 
+0

для меня модели. UserCount() не работает, потому что я делаю 'foreach: Titles', а затем внутри него я выполняю привязку на' text: UserCount() '. и я попробовал 'Model.Titles.UserCount()', но не компилировал. – Masriyah

+0

Содержимое Html обычно помещается в теги скриптов для целей шаблонов на стороне клиента. Обратите внимание на тип '

0

Не видя вашу модель нокаута, вы должны быть в состоянии сделать что-то вроде этого

<!-- ko if: Users().count > 13 --> 
    <h3 id="letter" data-bind="text: Letter"></h3> 
<!-- /ko --> 
+0

Я добавил viewModel, в котором у меня есть userCount - не уверен, что понадобится другой кусок, но мне нравится этот подход и даст ему попробовать – Masriyah

+0

. Это сообщение об ошибке, которое я получаю: 'Uncaught Error: Невозможно разобрать привязки. Сообщение: ReferenceError: UserCount не определен; Значение привязки: if: UserCount()> 13' – Masriyah

+0

@Masriyah, на основе HTML, который вы показываете, не привязаны к вашему шаблону. Можете ли вы установить все это в jsfiddle, чтобы я мог лучше видеть, что происходит – Jared

1

, потому что вы в списке, контекст список , вам необходимо получить доступ к вашему родительскому представлениюModel следующим образом:

$parent.UserCount() > 13 
1

Если заявление в виде бритвы.

@{ 
var a = "No"; 

if(a == "No") 
{ 
//do something 
} 
else{ 
//Do something else 
} 

} 
Смежные вопросы