jQueryダイアログボタンをノックアウトビューモデルにバインドする方法

StackOverflow https://stackoverflow.com/questions/7801458

  •  22-10-2019
  •  | 
  •  

質問

私がやりたいのは、ボタンがノックアウトビューモデルのデータバウンドであるダイアログを作成することです。

しかし、jQueryダイアログでボタンを作成する方法は、通常とは少し異なります。

誰かがこれの解決策を持っていますか?

役に立ちましたか?

解決

  1. 必ず自分で適用してください class ダイアログのボタンに:

    $("#dialog").dialog({
        buttons: [{
            text: 'Ok',
            class: 'ok-button'
        }]
    });
    
  2. をつかみます button.ok-button aを適用します data-bind それへの属性(visible ここで、それが機能することを示すために)。ここ、 name 私たちのビューモデルの観察可能な特性です:

    $("button.ok-button").attr("data-bind", "visible: name().length");
    
  3. 通常、バインディングを適用します:

    var model = { name: ko.observable('') };
    ko.applyBindings(model);
    

これがダイアログの「OK」ボタンを隠す例です。 name (観測可能)長さがあります > 0: http://jsfiddle.net/9crfy/

他のヒント

Andrewの回答に追加するには、データバインド属性はボタンに追加できる別の属性であるため、これも機能します。

$("#dialog").dialog({
    buttons: [{
        text: 'Ok',
        'data-bind': 'visible: name().length'
    }]
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top