Knockout JSを使用して次の問題を解決しようとしています
- 子ビュー モデルへの「送信」バインディングを介して HTML フォームをバインドする必要がある
- 「submit」にバインドされたコールバック メソッドは継承されたメソッドです
次のコードは、上記のシナリオをより適切に説明します。同じことがこのフィドルにあります。
function MasterViewModel() {
var self = this;
self.employeeViewModel = new EmployeeViewModel();
};
function EmployeeViewModel () {
var self = this;
self.empFirstName = ko.observable();
self.empLastName = ko.observable();
self.employeeList = ko.observableArray([]);
};
EmployeeViewModel.prototype.addEmployee = function () {
var self = this;
self.employeeList.push(new Employee(self.empFirstName(), self.empLastName()));
}
function Employee(firstNameParam, lastNameParam) {
var self = this;
self.firstName = ko.observable(firstNameParam);
self.lastName = ko.observable(lastNameParam);
}
ko.applyBindings(new MasterViewModel());
HTML では、次のように送信バインディングを使用します。
<form data-bind="submit: employeeViewModel.addEmployee">
</form>
私は常に、コールバック メソッドに渡される「this」コンテキストが「MasterViewModel」のインスタンスであることを観察しました。「送信」バインディングで別のコンテキストを渡す方法を探しましたが、無駄でした。
これは私が悪用しようとしている制限ですか、回避策はありますか?
ありがとう。