Javascript 基于select元素和knockout的Sammy路由

Javascript 基于select元素和knockout的Sammy路由,javascript,knockout.js,sammy.js,Javascript,Knockout.js,Sammy.js,当用户更改下拉列表中的选项时,是否有办法更新浏览器位置并执行sammy路由 我知道我可以做一个计算来实现这一点,但我一直在寻找一种方法,从一个可观测数据中填充id。清楚吗?基本上,当可观察到的更改时,您需要更新哈希路由,并让Sammy响应该路由 在viewmodel中添加类似的内容: Sammy(function () { this.get('#addressBook/:id', function () { ... }); }); 我从来没有尝试过这个,但是在看

当用户更改下拉列表中的选项时,是否有办法更新浏览器位置并执行sammy路由


我知道我可以做一个计算来实现这一点,但我一直在寻找一种方法,从一个可观测数据中填充id。清楚吗?

基本上,当可观察到的更改时,您需要更新哈希路由,并让Sammy响应该路由

在viewmodel中添加类似的内容:

Sammy(function () {
    this.get('#addressBook/:id', function () {
        ...
    });
});

我从来没有尝试过这个,但是在看过萨米的部分作品之后,我不相信有任何方法可以达到你的目的。Sammy是基于JQuery的,JQuery没有可观察的概念,因此,如果没有计算,您就无法更改URL的地址。当然这是可能的,但它不是内置的。您提供了一个更改哈希的示例吗?
Sammy(function () {
    this.get('#addressBook/:id', function () {
        ...
    });
});
selectedAddressBook.subscribe(function(newValue){
   // validate newValue
   // update the hash with the newValue
   window.location.hash = "#addressBook/" + newValue;
});