-2

最も重要な出発点は、「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

http://documentcloud.github.com/backbone/#Collection-remove

http://documentcloud.github.com/backbone/#Collection-get

4

1 に答える 1

1

ノックアウトの監視可能な配列、または ko.utils 名前空間にある「拡張機能」を使用します。それは通常、私が必要とするものには十分すぎるほどです!

http://knockoutjs.com/documentation/observableArrays.html

バックボーン: 1 ノックアウト: 1 (または 2 remove + removeAll、または 3 リバース、ソート、シフトなど)

于 2012-07-19T09:52:35.197 に答える