-2

最重要的起点是没有“添加”选项。我无法识别“拼接”功能!随着拼接的注意,我接受了答案。

我打算在我的下一个项目中使用 knockout.js。但我需要相当于 c# Collection 的javascript。

-添加 -删除 -包含

对于这个要求,我有两个标准。

  • 生产就绪
  • 很好的表现

这个的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 删除 + removeAll,或 3 反向、排序、移位等)

于 2012-07-19T09:52:35.197 回答