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做到这一点?谢谢!
我在页面上有一个网格和一个选择控件.选择任何选择值都会触发网格更新.使用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)