1

ミスリル アプリで jQuery FooTable プラグインを動作させようとしています。コンポーネントに次のような構成呼び出しがあります。

view: function(ctrl, args) {
  return m("table#globalConfigTable", {config: execFooTable})
}

this.execFooTable = function(element, isInit, context) {
  $('#globalConfigTable').footable({
    "columns": columns(),
    "rows": args.configRows
  })
}

args.configRows は、このコンポーネントに渡す GET リクエストから返された約束です。execFooTable 関数が正常に呼び出されていることがわかりますが、args.configRows 変数にアクセスする方法がわかりません。context.configRows などを試してみましたが、すべて未定義として返されます。

誰でも私を助けてもらえますか?ありがとうございました。

4

1 に答える 1

2

次の関数を使用できます。

// Partially apply arguments to a function. Useful for binding
// specific data to an event handler.
// Example use:
//
//   var add = function (x,y) { return x + y; }
//   var add5 = add.papp(5)
//   add5(7) //=> 11
//
Function.prototype.papp = function () {
    var slice = Array.prototype.slice,
        fn = this,
        args = slice.call(arguments);
        return function () {
            fn.apply(this, args.concat(slice.call(arguments)));
        }
}

次に、次のようにコードを書き直すことができます。

view: function(ctrl, args) {
  return m("table#globalConfigTable", {config: execFooTable.papp(args)})
}

this.execFooTable = function(args, element, isInit, context) {
  $('#globalConfigTable').footable({
    "columns": columns(),
    "rows": args.configRows
  })
}
于 2015-12-16T11:53:22.513 に答える