小编And*_*vky的帖子

更改哈希而不触发Sammy事件

function UsersVM(start_page){
  var self = this;
  console.log('start form ' + start_page);
  self.go_to = function(page) {
    location.hash = '#Users/' + pageNumber;     
  }
}

Sammy(function() {
    this.get('/app/?#Users/:page', function () {
        var vm = new  UsersVM(this.params.page);
        ko.applyBinding(vm);               
    });
}).run();
Run Code Online (Sandbox Code Playgroud)

我想用以下代码更改页面的哈希:

    location.hash = '#Users/' + pageNumber;
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,Sammy会触发路由.在Backbone中说我们可以这样做:

    app.navigate("help/troubleshooting", {trigger: false}); 
Run Code Online (Sandbox Code Playgroud)

是不是可以在Sammy做到这一点?谢谢!

javascript sammy.js knockout.js

11
推荐指数
2
解决办法
3125
查看次数

Knockout.js:手动触发计算

我在页面上有一个网格和一个选择控件.选择任何选择值都会触发网格更新.使用computed完成更新.我可以手动触发网格更新,例如,在将新值添加到网格时的情况吗?

 function vm(){
    var self = this;

    self.items = ko.observableArray([]);
    self.chosen_category = ko.observable("");

    self.pager = {
        page_namber : ko.observable(1),
        page_size : ko.observable(10)
    };

     self.sort = {
       field : ko.observable('name'),
       dist : ko.observable('asc')
     };
     // etc. 

     self.fetch = ko.computed(function(){
        $.ajax({
               url: '/api/items/',
               type: 'GET',
               data: ko.toJSON(self),
               contentType: 'application/json',
               success: self.items
          });
     }, self);


      self.add_item = function() {
        //here I want to update the grid
        self.fetch(); // not work
      };
 }
Run Code Online (Sandbox Code Playgroud)

当然我可以把它移到一个单独的功能,但我正在寻找一个更清洁的解决方案.谢谢!

工作版:

          function vm() {
            var self = this;

            self.items = …
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

6
推荐指数
1
解决办法
9411
查看次数

标签 统计

javascript ×2

knockout.js ×2

sammy.js ×1