0

私は " ifnot" バインディングのようなもの、次のようなものを達成しようとしています:

<div data-bind="ifnot: Categories"><p>No Categories available</p></div>

<div data-bind="template: { name: 'category-template', foreach: Categories }"></div>

<script type="text/html" id="category-template">
     <p data-bind="text: Title"></p>
</script>

<script>
     var self;

     function viewModel() {
          self = this;
          self.Categories = ko.observableArray([]);
     }

     ko.applyBindings(new viewModel());

     var renderCategoryTemplate = function(data) {
          for (var i = 0; i < data.length; i++) {
               self.Categories.push({
                    Title: data[i].Title
               });
          }
     };
</script>

これは可能ですか?または、これを行うより良い方法はありますか?

「利用可能なカテゴリがありません」というテキストが一瞬だけ表示されます。しかし、それは消えます。助言がありますか?

4

3 に答える 3

1

等しくない場合は作成する

<div data-bind="if: !Categories()"><p>No Categories available</p></div>

これは、カテゴリがない場合に評価され、これを表示します。

編集ちらつきたくない場合は、これを行います-

<div data-bind="text: !Categories() ? 'There are no categories' : ''"></div>
于 2013-10-28T19:11:54.410 に答える
0

外側の div を p タグに変更すると、すべての回答が機能します。

<p data-bind="ifnot: Categories">
    <p data-bind="text: 'No Categories available'"></p>
</p>

も機能します:

<p data-bind="if: !Categories()">
    <p data-bind="text: 'No Categories available'"></p>
</p>

理由がわからない

于 2013-10-28T21:56:24.470 に答える