我有以下的打字稿代碼時沒有更新:可觀察輸入輸入字段
///<reference path="typings/jquery/jquery.d.ts" />
///<reference path="typings/knockout/knockout.d.ts" />
///<reference path="typings/bootstrap/bootstrap.d.ts" />
///<reference path="typings/knockout.mapping/knockout.mapping.d.ts" />
class Municipality {
id: KnockoutObservable<number>;
name: KnockoutObservable<string>;
constructor(
id: number,
name: string) {
this.id = ko.observable(id);
this.name = ko.observable(name);
}
}
class SettingsViewModel {
public municipality: KnockoutObservable<Municipality>;
constructor() {
this.municipality = ko.observable(new Municipality(0, ""));
}
editName = function (item) {
$('#editValueDialog').modal('show');
}
submitUpdate = function() {
var data = ko.mapping.toJSON(this.municipality());
console.log(data);
};
}
$(document).ready(function() {
var serverData = JSON.parse($("#serverJSON").val());
console.log(serverData);
vm.municipality(new Municipality(serverData.Id, serverData.Name));
});
var vm: SettingsViewModel;
vm = new SettingsViewModel();
ko.applyBindings(vm);
在我看來,我想只是有一個簡單的輸入字段:
<input type="text" data-bind="value: vm.municipality().name()">
值的名稱在輸入字段中可見,但在更改它並觸發submitUpdate事件時,該值沒有更改,在我檢查控制檯中的屬性時也沒有更改。
如果我輸入:
vm.municipality().name('test')
在控制檯中值的變化。
我錯過了什麼?
其實好像這個工程。我很好奇,爲什麼?會再做幾次檢查。 – user373455 2014-10-21 07:58:48
它可能工作,因爲綁定是困難的:P也許也試試這個: – 2014-10-21 09:39:17
我還沒有完全得到它,所以我不'不知道這是否有效,沒有jsfiddle,所以我不能測試(也懶得製作) – 2014-10-21 09:39:47