【发布时间】:2012-05-26 01:01:41
【问题描述】:
我将 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改变?
【问题讨论】:
-
您是否尝试过从您的
self.search函数返回false? -
感谢 Gene,我注意到我没有在 Sammy 中设置发布路线。
-
次要...因为
self.name是一个函数,你应该调用alert(self.name())。
标签: knockout.js sammy.js