1ページアプリケーションにSammyJSでKnockoutJSを使用しています。
HTMLには、次のようなフォームタグがあります
<form data-bind='submit: search'>
<label>Find user:</label>
<input data-bind='value: name' />
</form>
そして私のビューモデルでは、2つの関数とサミールートURLを宣言しました
function ViewModel() {
var self = this;
self.name = ko.observable("");
self.search = function () {
alert(self.name);
};
Sammy(function () {
this.get('#:id', function () {
//do something....
});
}).run();
}
ko.applyBindings(new ViewModel());
テキストボックスに何かを入力してフォームを送信するまで、すべてのコードは正常に機能します。アラート ウィンドウの後に URL を参照しないと思っていましたが、URL が「http://localhost:8258/undefined?」のようなものに変更されました。元の URL は「http://localhost:8258」です。
私はサミーの URL ルーティングを疑っていたので、JavaScript コードからサミーのコードを削除しました。その後、警告ウィンドウの後に URL は変更されません。たぶん、サミーがどのように機能するかを理解していません。
この場合、URL を変更しないようにするにはどうすればよいですか?