将数组作为选项传递给Knockout自定义绑定

兰迪·P。

所以我敢肯定,我不是第一个尝试这样做的人,但是我在这里找不到任何与我要尝试的例子匹配的例子。

我有一个这样定义的Knockout自定义绑定。

 ko.bindingHandlers.table = {
    init: function (element, valueAccessor) {
        value = ko.unwrap(valueAccessor());
        //Create a table
};

目标是最大程度地减少想要创建表的用户对javascript的了解。我希望他们提供的HTML是这样的:

data-bind="table: foo, columns: ['id', 'first name', 'last name', ect...]"></table> 

我希望能够以类似数组的格式指定列(再次尝试不使用任何JS)。我知道我可以做一些愚蠢的事情,例如col1:'id',col2:'first name',但是我宁愿有一个对象/数组,我可以轻松地在创建时使用.length()我的桌子。

我确实有使用Jquery处理数据的变通方法,但是如果可以的话,我宁愿做这样的事情。

最后但不是租约,我假设我将通过allBindings访问器访问该对象,如果对此感到误解,请告诉我。先感谢您。

罗伯特·韦斯特伦德

您最好使用其中一个现有的表bindingHandlers。无论是淘汰赛的Contrib的KO网,@ MichaelBest的以上建议表或其他任何这是已经在那里。

关于你的问题;绑定数组就像您想的那样简单,只需在绑定中输入数组(或绑定到保存数组的属性)即可。但是,您实际上是在问使用abindingHandler从多个绑定中读取设置。要做到这一点,使用的第三个参数init/update你的函数bindingHandler,该allBindings参数。

这种绑定的一个简单示例可以是:

ko.bindingHandlers['table'] = {
    init: function(element, valueAccessor, allBindings){
        var data = ko.unwrap(valueAccessor());
        var columns = allBindings.get('columns');
        var table = document.createElement('table');
        for(var i = 0; i < data.length; i++){
            var currentItem = data[i];
            var row = document.createElement('tr');
            for(var j = 0; j < columns.length; j++){
                var column = document.createElement('td');
                column.innerText = currentItem[columns[j]];
                row.appendChild(column);
            }
            table.appendChild(row);
        }
        element.appendChild(table);
    }
};

然后,您可以bindingHandler像这样使用它

<div data-bind="table:data, columns: ['id','firstName']"></div>

我在http://jsfiddle.net/TK9y2/中有一个使用上述绑定的工作示例

请注意,该allBindings参数还提供了一种has方法,您应使用方法来检查是否存在与您要查找的名称绑定。您可以在Knockout文档中的自定义绑定中阅读有关此内容的信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数据绑定变量作为xml属性传递给自定义视图

来自分类Dev

AngularJS将数组传递给自定义过滤器作为参数

来自分类Dev

AngularJS将数组传递给自定义过滤器作为参数

来自分类Dev

以自定义格式将值传递给数组

来自分类Dev

将C#自定义数组传递给JavaScript

来自分类Dev

如何将绑定上下文传递给自定义处理程序调用?

来自分类Dev

将自定义绑定的值传递给自定义绑定中添加的DOM元素

来自分类Dev

当我尝试将字符串作为参数传递给Azure自定义脚本扩展中的Powershell函数时,“传递了无效的数组...”

来自分类Dev

车把:如何将@index作为参数传递给自定义助手

来自分类Dev

我是否需要编写自定义HttpMessageConverter以将List <Long>作为参数传递给RestTemplate

来自分类Dev

C#将通用类作为参数传递给自定义方法

来自分类Dev

如何将函数作为参数传递给Javascript中的自定义函数

来自分类Dev

将jquery函数作为变量参数传递给自定义函数

来自分类Dev

将属性作为函数传递给Polymer中的自定义元素

来自分类Dev

将事件处理程序作为道具传递给 react-native 自定义组件

来自分类Dev

将图像作为意图传递给其他活动中的自定义标记

来自分类Dev

将自定义选项传递给radarChartJS时出错

来自分类Dev

如何将对象作为可绑定属性传递给Xamarin.Forms自定义控件

来自分类Dev

将 Json 数组传递给自定义指令 Angular 5

来自分类Dev

将ColdFusion数组作为绑定变量传递给Oracle Collection

来自分类Dev

将ColdFusion数组作为绑定变量传递给Oracle Collection

来自分类Dev

将字段值传递给自定义布局

来自分类Dev

将参数传递给自定义异常

来自分类Dev

将参数传递给自定义中间件

来自分类Dev

如何将参数传递给自定义操作?

来自分类Dev

将列表传递给SQL自定义类型

来自分类Dev

将模型属性传递给自定义指令

来自分类Dev

将参数传递给自定义UITableViewCell

来自分类Dev

自定义TextView将数据传递给onDraw

Related 相关文章

  1. 1

    如何将数据绑定变量作为xml属性传递给自定义视图

  2. 2

    AngularJS将数组传递给自定义过滤器作为参数

  3. 3

    AngularJS将数组传递给自定义过滤器作为参数

  4. 4

    以自定义格式将值传递给数组

  5. 5

    将C#自定义数组传递给JavaScript

  6. 6

    如何将绑定上下文传递给自定义处理程序调用?

  7. 7

    将自定义绑定的值传递给自定义绑定中添加的DOM元素

  8. 8

    当我尝试将字符串作为参数传递给Azure自定义脚本扩展中的Powershell函数时,“传递了无效的数组...”

  9. 9

    车把:如何将@index作为参数传递给自定义助手

  10. 10

    我是否需要编写自定义HttpMessageConverter以将List <Long>作为参数传递给RestTemplate

  11. 11

    C#将通用类作为参数传递给自定义方法

  12. 12

    如何将函数作为参数传递给Javascript中的自定义函数

  13. 13

    将jquery函数作为变量参数传递给自定义函数

  14. 14

    将属性作为函数传递给Polymer中的自定义元素

  15. 15

    将事件处理程序作为道具传递给 react-native 自定义组件

  16. 16

    将图像作为意图传递给其他活动中的自定义标记

  17. 17

    将自定义选项传递给radarChartJS时出错

  18. 18

    如何将对象作为可绑定属性传递给Xamarin.Forms自定义控件

  19. 19

    将 Json 数组传递给自定义指令 Angular 5

  20. 20

    将ColdFusion数组作为绑定变量传递给Oracle Collection

  21. 21

    将ColdFusion数组作为绑定变量传递给Oracle Collection

  22. 22

    将字段值传递给自定义布局

  23. 23

    将参数传递给自定义异常

  24. 24

    将参数传递给自定义中间件

  25. 25

    如何将参数传递给自定义操作?

  26. 26

    将列表传递给SQL自定义类型

  27. 27

    将模型属性传递给自定义指令

  28. 28

    将参数传递给自定义UITableViewCell

  29. 29

    自定义TextView将数据传递给onDraw

热门标签

归档