淘汰赛表演/隐藏不与durandal合作

时间:2014-07-09 13:57:08

标签: knockout.js durandal

我使用了敲除if绑定来显示/隐藏基于模型值的div。

var model = {
        // Model-----------------------------------------------
        router: router,
        chosen: chosen,
        selectedItems: [],
        selectedItemsList: [],
        p: {
            Id: null,
            IsValid : false
        },

         activate: function (id) {
            var self = this;
            var apiRoute = 'test/id';
            return api.GetModel(apiRoute, null, self);
         },
         approve: function ()
         {
            return self.activate(1);
         }
 };

 <!-- ko if: p.IsValid -->
    <div></div>
<!-- /ko -->

这在第一次加载应用程序时有效。但是要刷新视图,我在按钮单击中调用self.activate()。调用self.activate()后,显示/隐藏功能停止工作。

有人可以帮我确定问题所在吗?

2 个答案:

答案 0 :(得分:0)

您可以使用the "visible" binding

viewModel中的

   viewModel ={
     activate: activate,
     title: 'Bewertung',
     attached: attached,
     someVal : ko.observable(true)
   }


  return viewModel
视图中的

 <div data-bind="visible: someVal"></div>

更改您可以"someVal"访问viewModel.someVal(false)的可见度,例如attached

答案 1 :(得分:0)

试试这个:

viewModel ={
 activate: activate,
 title: 'Bewertung',
 attached: attached,
 someVal : ko.observable(true)

}

<div data-bind="visible: someVal()"></div>