2016-04-21 10 views
0
function SearchArticleModel() { 
     var self = this; 
     self.param = ''} 

var searchModel = new SearchArticleModel(); 
ko.applyBindings(searchModel, document.getElementById("ko-search-module")); 


$('.tag-menu').on('click', function(e) { 
      showSearch(); 
      // searchModel.param("tags") 
} 

paramに文字列値tagを与える必要があります。私はそれをすることができません。私は試しましたが、私はこれに固執しています。私はノックアウトを初めて使用しているので、ちょっと混乱しています。 param値がnullのノックアウトモデルがあります。そして、私は次の関数が呼び出されたときにparamの値を設定しようとしています。変数の値をモデル外から変更する

答えて

2

変更内容をUIに反映させるには、ko.observable()を使用する必要があります。

function SearchArticleModel() { 
    var self = this; 
    self.param = ko.observable() 
} 

var searchModel = new SearchArticleModel(); 
ko.applyBindings(searchModel, document.getElementById("ko-search-module")); 


$('.tag-menu').on('click', function(e) { 
     showSearch(); 
     // searchModel.param("tags") 
} 

また、私はあなたが$('.tag-menu').on()の代わりに結合KO clickを使用することをお勧めしたいです。 HTMLで、その後

function SearchArticleModel() { 
    var self = this; 
    self.param = ko.observable() 
    self.setParam = function(){ 
     self.param('tag'); 
    } 
} 

<a data-bind="click: setParam"></a> 

またはあなたもHTMLからのパラメータを渡すことができバインディング:

<a data-bind="click: setParam.bind($data, 'param value')"></a>