2012-04-10 19 views
1

2つのアレイを持っています。 1つは地域内のすべての学校の配列、もう1つはそれらの学校のすべての学生のリストです。生徒のオブジェクトには、どの学校に所属しているかが分かります。私はすべての学校のリストを作ることができ、私はすべての学生のリストを作ることができます。私は学校(またはいくつかの学校)を選び、その学校の生徒だけをリストに表示させたいと思っています。ここで 2つの観測可能なアレイとノックアウトjsをリンクします

は、私が(のCoffeeScriptに)持っているものです:

ViewModel =() -> 
    @accounts = ko.observableArray([]) 
    @players_to_teams = ko.observableArray([]) 
    @selected_players_to_teams = ko.observableArray([]) 
    @selected_schools = ko.observableArray([]) 
    null 

ビュー:selected_schools変更は、私が唯一の学校を持っている生徒のレコードを格納するselected_players_to_teamsを更新する必要が

<label for="school_selection">School</label> 
<select id="school_selection" class="inline" multiple=true size="50" data-bind="options:accounts, optionsText: 'Name', selectedOptions: selected_schools"></select> 


<div id="player_list" class="inline"> 
    <table class="table table-striped"> 
    <thead> 
    <tr> 
     <th id="firstName">First Name</th> 
     <th id="lastName">Last Name</th> 
     <th id="position">Position</th> 
     <th id="teamName">Team Name</th> 
     <th id="accountId">Account ID</th> 
    </tr> 
    </thead> 
    <tbody data-bind="foreach: selected_players_to_teams"> 
    <tr> 
     <td data-bind="text: FirstName"></td> 
     <td data-bind="text: LastName"></td> 
    </tr> 
    </tbody> 
    </table> 
</div> 

selected_schoolsアレイ?

observableArraysをリンクしたり、observableArraysを関数にしたり、observableArrayのコールバックをキャッチしたりする方法はありますか?

答えて

2

selected_schoolsが更新されたときに実行されるko.computedとしてselected_players_to_teamsを実装し、selected_schoolsのplayers_to_teamsを返します。

は、コードのみの例については、このjsfiddleを参照してください:http://jsfiddle.net/MqNPm/

トゥアン

+2

@Tuanが答えたとき、私は答えを始めていました。もし私が助けてくれれば、私のフィドルでした:http://jsfiddle.net/rniemeyer/Getfx/ –

関連する問題