我收到以下错误:
错误:无法解析绑定。 消息:ReferenceError:未定义UpdateStatus; 绑定值:选中:状态,禁用:状态,单击:UpdateStatus
这是我的javascript代码
function WebmailViewModel() {
// Data
var self = this;
self.days = ['2012-10-01', '2012-10-02', '2012-10-03', '2012-10-04', '2012-10-05', '2012-10-06', '2012-10-07'];
self.choosenDateId = ko.observable();
self.choosenDateGoal = ko.observable();
self.choosenGoalId = ko.observable();
self.UpdateNote = ko.computed(function () {
$.ajax({
type: "POST",
url: 'SinglePageApp.aspx/UpdateNote',
data: "{goalId:9423}",
contentType: "application/json; charset=utf-8",
success: function (result) {
alert(result.d);
}
});
});
self.UpdateStatus = ko.computed(function () {
$.ajax({
type: "POST",
url: 'SinglePageApp.aspx/UpdateStatus',
data: "{goalId: 9423}",
contentType: "application/json; charset=utf-8",
success: function (result) {
alert(result.d);
}
});
});
// Behaviours
self.gotoDay = function (days) { location.hash = days };
// Client-side routes
Sammy(function () {
this.get('#:days', function () {
self.choosenDateId(this.params.days);
debugger;
$.ajax({
type: "POST",
url: 'SinglePageApp.aspx/GetGoals',
data: "{goalDate:'" + this.params.days + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
self.choosenDateGoal(msg.d);
alert("success");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
alert(errorThrown);
}
})
});
this.get('', function () { this.app.runRoute('get', '#2012-10-04') });
}).run();
};
ko.applyBindings(new WebmailViewModel());
提前致谢
答案 0 :(得分:0)
我相信你的问题是你在错误的意义上使用计算的observable。如果你想要一个函数被调用(就像你想要的那样,因为你将它绑定到一个点击绑定),只需将其声明为
self.<function Name> = function(< passed variables>){
//Code to be done when this function is called.
};
计算的位置更多用作变量。因此,如果只有传递给计算的函数,则将其视为只读变量。您可以指定计算机是可读写的,但是您必须提供读写函数,如:
self.<computed Name> = ko.computed(function(){
read: function () {
// return how you want this computed to be displayed.
},
write: function (value) {
// How do you want this to be saved.
},
});
此外,计算的observables意味着在函数中使用现有的observable。这样,只要更新在计算的observable中使用的可观察量,就会调用计算的函数。有关示例和更多信息,请参阅computed observable documentation。