最も重要な出発点は、「ADD」オプションがないことでした。「スプライス」機能が認識できませんでした!細心の注意を払って、私は答えを受け入れています。
次のプロジェクトでは、knockout.js を使用する予定です。しかし、 c# Collection に相当する JavaScript が必要です。
-追加 -削除 -含む
この要件には 2 つの基準があります。
- 生産準備完了
- 良い成果
これの Javascript バージョン
public class UserResponse
{
public Question Question { get; set; }
public Answer SelectedAnswer { get; set; }
}
public class Answer
{
public string Name { get; set; }
}
public class Question
{
public int Id { get; set; }
public string Name { get; set; }
public List<Answer> Answers{ get; set; }
}
// User dont need to response every question
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public List<UserResponse> Responses{ get; set; }
public void AddResponse(UserResponse response)
{
// Find if another answer for response.Question and remove it
var res=Responses.Where(p => p.Question == response.Question).FirstOrDefault();
if (res != null)
Responses.Remove(res);
// Add new response
Responses.Add(response);
}
}
バックボーン : 1 - ノックアウト: 0
http://documentcloud.github.com/backbone/#Collection-add