Knockout.jsホームページのビデオ チュートリアルで、プレゼンターは、ViewModel にobservableArray
カスタム オブジェクト (この場合は「フレンド」オブジェクト) のインスタンスを含むプロパティが含まれる簡単な例を設定します。
function friend(name) {
return {
name: ko.observable(name),
remove: function () {
viewModel.friends.remove(this);
}
};
}
var viewModel = {
friends: ko.observableArray()
}
ko.applyBindings(viewModel);
これは、KO テンプレートを使用してレンダリングされます。
<script id="friendsTemplate" type="text/html">
<li>
<input data-bind="value: name" />
<button data-bind="click: remove">Remove</button>
</li>
</script>
friend
ViewModel のfriends
コレクションからオブジェクト (Model?) を削除するロジックがfriend
オブジェクト自体に実装されているのは奇妙に思えます。friend
これにより、オブジェクトと ViewModel インスタンスの間に望ましくない結合が生じませんか? removeFriend
オブジェクトではなくViewModelで機能を定義できる、より一貫した設計アプローチはありfriend
ますか?