KnockoutJs ViewModel函数

时间:2016-11-17 12:21:34

标签: knockout.js viewmodel

我是KnockOutJs的新手,我有这个问题。 这是我的简单表单,只有在单击按钮时才执行Login功能。但是,当页面加载而没有用户单击它时,将执行该功能。 我该如何解决?

$().ready(function() {
      function ViewModel() {        
        var self = this;
        self.username = ko.observable();
        self.password = ko.observable();
        self.Login = function() {          
          console.log('do login');
        };
      }
      ko.applyBindings(new ViewModel());
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div class="form-group">
  <input type="text" id="username" name="username" data-bind="value:username" placeholder="User Name" />
</div>
<div class="form-group">
  <input type="password" id="password" name="password" data-bind="value:password" placeholder="Password" />
</div>
<button type="button" id="btnlogin" data-bind="click:Login()">login</button>

1 个答案:

答案 0 :(得分:3)

用以下内容替换按钮行:

<button type="button" id="btnlogin" data-bind="click:Login">login</button>

您正在创建DOM创建的Login方法,删除括号将等待触发click事件。