Knockout に関するコードを見て、調べてみましたが、このコードがどのように機能するのか理解できませんでした。通常のメソッドを Knockout ビューモデルにバインドするための完全なコードを次に示します。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/knockout-2.2.1.js"></script>
<script src="Scripts/jquery-1.7.1.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" data-bind="click: callalert" name="knockoutbtn" value="Call Knockout Method"/>
<input type="button" name="normalbtn" id="nbtn" value="Call Normal Method"/>
<script type="text/javascript">
var callmethod = function () { //Normal Method which would be
alert('hello'); //called from knockout binding
} //also from the normal button click
$(document).ready(function () { //Binded the Method with normal button
$("#nbtn").live("click", callmethod);
});
ko.applyBindings({ //Binded the method with ko view model
callalert : callmethod
});
</script>
</div>
</form>
</body>
</html>
このコードの意味がわかりません: また、このコードdata-bind="click: callalert"
もわかりません:
ko.applyBindings({ //Binded the method with ko view model
callalert : callmethod
});
ユーザーが最初のボタンをクリックすると、名前付きのメソッドが呼び出されるようcallalert
ですが、コードには という名前のメソッドはありませんcallalert
。ユーザーが 2 番目のボタンをクリックすると、named というメソッドが呼び出されcallmethod
ます。
ですから、上記のコードを理解するのを手伝ってください。特にこの2点
1) data-bind="click: callalert"
2) ko.applyBindings({ //Binded the method with ko view model
callalert : callmethod
});
アップデート
誰かがそれを下に見たら
var person = {
firstName: 'John',
lastName: 'Doe',
sayHi: sayHiFunction,
pets: ['Cat', 'Dog']
};
それでは、 sayHiFunction() のようなブラケットがないため、 sayHiFunction が関数であることをどのように理解するでしょうか?
上記のコードを見ればわかります
$(document).ready(function () { //Binded the Method with normal button
$("#nbtn").live("click", callmethod);
});
そのcallmethodはjqueryコードで呼び出しています。ユーザーがボタンをクリックしたときに callmethod を呼び出す必要があることをコードで定義するのはなぜですか。一度それがjqueryによって行われ、一度それがノックアウトバインディングによって行われますか? 詳しく説明していただけますか。
jquery部分を削除すると、ユーザーがボタンをクリックしたときにcallmethodが呼び出されます。あなたの答えを待っています。ありがとう