我将 KnockoutJS 与 SammyJS 一起用于一页应用程序。
在 html 中,我有如下的表单标签
<form data-bind='submit: search'>
<label>Find user:</label>
<input data-bind='value: name' />
</form>
在我的视图模型中,声明了两个函数和 sammy route 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?”的内容 我的原始网址是“http://localhost:8258”
我怀疑 sammy url 路由,所以从 javascript 代码中删除了 sammy 代码,然后 url 在警报窗口后不会改变。也许我不明白 sammy 是如何工作的。
在这种情况下如何防止 url 改变呢?