I constantly find myself using this idiom in KO-based HTML templates:
-
There are a couple different ways that you can handle this type of code.
with an if/ifnot combination like you are now. This works fine and is not terribly verbose.
Michael Best's switch/case binding (https://github.com/mbest/knockout-switch-case) is quite flexible and can let you easily handle this and more complicated ones (more states than true/false).
Another option is to use dynamic templates. You would bind an area to one or more templates with the template name being used based on an observable. Here is a post that I wrote on this topic a while back: http://www.knockmeout.net/2011/03/quick-tip-dynamically-changing.html. In your scenario, it might look like:
The getCellTemplate
function could live wherever, but would be given the item ($data) as the first argument and would return the name of the template to use.
- 热议问题