Knockout.js 淘汰赛表演/隐藏不适用于durandal
我使用了knockoutKnockout.js 淘汰赛表演/隐藏不适用于durandal,knockout.js,durandal,Knockout.js,Durandal,我使用了knockoutifbinding根据模型中的值显示/隐藏div var model = { // Model----------------------------------------------- router: router, chosen: chosen, selectedItems: [], selectedItemsList: [], p: { Id:
if
binding根据模型中的值显示/隐藏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 -->
var模型={
//模型-----------------------------------------------
路由器:路由器,,
选择:选择,
selectedItems:[],
selectedItemsList:[],
p:{
Id:null,
IsValid:false
},
激活:功能(id){
var self=这个;
var apiRoute='test/id';
返回api.GetModel(apiRoute,null,self);
},
批准:职能部门()
{
返回自激活(1);
}
};
当应用程序第一次加载时,这种方法就起作用了。但要刷新视图,我只需单击按钮即可调用self.activate()
。调用self.activate()
后,显示/隐藏功能停止工作
有人能帮我找出问题出在哪里吗?你可以用
在viewModel中
viewModel ={
activate: activate,
title: 'Bewertung',
attached: attached,
someVal : ko.observable(true)
}
return viewModel
在视图中
<div data-bind="visible: someVal"></div>
要更改可见性,您可以访问“someVal”
,如下viewModel.someVal(false)
fromattached
,例如尝试以下操作:
viewModel ={
activate: activate,
title: 'Bewertung',
attached: attached,
someVal : ko.observable(true)
}
您需要共享更多代码。var model={//model---------------------------------------------路由器:路由器,已选择:已选择,已选择EditEMS:[],已选择EditEmsList:[],p:{Id:null,IsValid:false},激活:函数(Id){var self=this;var apiRoute='test/id';return api.GetModel(apiRoute,null,self);},approve:function(){return self.activate(1);};您在问题的左下角有一个编辑链接hmmm..您似乎没有在此处使用observables。您需要重新激活视图以刷新视图的原因是什么?感谢您的回复,但visible也没有工作var model={//模型------------------------------------------路由器:路由器,已选择:已选择,已选择EditeMs:[],已选择EditeMsList:[],p:{Id:null,IsValid:false},激活:函数(Id){var self=this;var apiRoute='test/id';return api.GetModel(apiRoute,null,self);},approve:function(){return self.activate(1);};
<div data-bind="visible: someVal()"></div>