我这里有simple login page个用户名,1个密码和1个登录按钮。我在这里做的是当用户键入用户名和密码,然后单击“登录”按钮,这是一个函数
self.login = function(username,password){
if(password =="default"){
return isDefaultPassword(true);
}else{
return isDefaultPassword(false);
}
ko.applyBindings(self.viewModel);
}
将被执行,然后他将检查输入的密码是否为“默认”,如果是,那么我将另一个<input type="password" data-bind="visible: isDefaultPassword(true)"
可见,那么我应该有1个用户名输入和2个密码输入和1个登录按钮在登录页面。
但我的问题是,为什么第二个密码输入标签在我加载登录页面时显示在开头,而不是在执行函数self.login
之后。当我点击登录按钮时似乎无法调用self.login
函数。我在这里弄错了什么?
答案 0 :(得分:1)
如果您添加了敲除脚本参考并包含
$(document).ready(function()
{
var newModel = new viewModel();
ko.applyBindings(newModel);
});
到脚本的末尾,您可以从中识别出错误。
您可以通过多种方式对其进行编辑。一种可能的解决方案可能是jsfiddle.net/egkxq2us/10
这有效地使isDefaultPassword成为可观察的,以便您可以根据它切换可见性。