Ray*_*Ray 5 sammy.js knockout.js
我正在将KnockoutJS与SammyJS一起用于一个页面应用程序.
在html我有表格标签如下
<form data-bind='submit: search'>
<label>Find user:</label>
<input data-bind='value: name' />
</form>
Run Code Online (Sandbox Code Playgroud)
并在我的viewmodel中,声明了两个函数和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());
Run Code Online (Sandbox Code Playgroud)
所有代码都运行良好,直到我在文本框中键入内容然后提交表单.我预计在警报窗口之后没有网址浏览,但网址会更改为"http:// localhost:8258/undefined?" 我原来的网址是"http:// localhost:8258"
我怀疑sammy url路由,所以从javascript代码中删除了sammy代码,然后在警报窗口后url不会改变.也许我不明白sammy是如何运作的.
如何防止url改变这种情况?
Sammy将自己绑定到表单,以便您也可以为它们注册路由.
<form action="#1234" method="post">
Run Code Online (Sandbox Code Playgroud)
JS:
Sammy(function() {
this.post('#:id', function() {
// do something...
return false; // avoid form submission
});
// ...
}).run();
Run Code Online (Sandbox Code Playgroud)