Giter Club home page Giter Club logo

Comments (7)

mbest avatar mbest commented on August 16, 2024

Initial nodes of the first table:

childNodes: NodeList[9]
0: Text
1: HTMLDivElement
2: Text
3: Text
4: HTMLDivElement
5: Text
6: Text
7: HTMLDivElement
8: Text
length: 9

Nodes after doing steps 2 and 3 above:

childNodes: NodeList[9]
0: Text
1: Text
2: Text
3: HTMLDivElement
4: HTMLDivElement
5: HTMLDivElement
6: Text
7: Text
8: Text
length: 9

So now the foreach code thinks that all three divs are part of item 2 (Ted).

As an even more dramatic example of the problem, if you now move Ted to another table, Bobby and Jim will disappear.

from knockout-sortable.

rniemeyer avatar rniemeyer commented on August 16, 2024

@mbest - Thanks for reporting this here. Am going to look into this one a bit more, as I am sure that Bobby and Jim's parents would be concerned if they were to disappear from class.

I see in the original sortableList binding from the other thread that a solution that worked was to clear out the list and replace it completely with the updated version. Was hoping not to re-render everything on each drop. Will research it further.

from knockout-sortable.

mbest avatar mbest commented on August 16, 2024

The other solution that should work is to make sure that the template has only a single element (or not more than two).

from knockout-sortable.

mbest avatar mbest commented on August 16, 2024

Here's an update to the fiddle showing that the problem goes away if the templates don't have the enclosing text nodes.

from knockout-sortable.

rniemeyer avatar rniemeyer commented on August 16, 2024

Thanks. I have suggested that to a couple of people already for the time being and it works well. When I get a chance I want to look into stripping empty text nodes that come before/after the template. I don't want the binding to be too invasive though.

from knockout-sortable.

rniemeyer avatar rniemeyer commented on August 16, 2024

I put in a change to strip top-level text nodes. I think that it is reasonable to expect that items will be placed in a container element. This won't help named templates. I am less eager to do named template re-writing in the binding. I am playing with some other options, but I don't want to go so far as to create a templateSource that does the stripping and a templateEngine that uses that source as part of the binding.

from knockout-sortable.

rniemeyer avatar rniemeyer commented on August 16, 2024

Not planning to address this any further at the moment.

from knockout-sortable.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.