【问题标题】:Knockout.js and dynamic string function not workingKnockout.js 和动态字符串函数不起作用
【发布时间】:2012-03-26 06:37:10
【问题描述】:

下面我在第二个 else 上呈现一个对象,该对象包含一个用于呈现 action.DataBind 的字符串的对象,该字符串呈现 app.viewModel.members.divisionPools.addPool();,单击事件不起作用。我做错了吗?

    {{if action.IsDownload }}
                    <a href="#" data-bind="download: { url: 'members/' + action.Route().toLowerCase() }">${Title}</a>
    {{else action.DataBind}}
                    <a href="#" data-bind="click: action.DataBind">${Title}</a>
    {{else}}
                    <a href="#" data-bind="attr: { href: app.viewModel.members.createRoute(action) }">${Title}</a>
    {{/if}}

app.viewModel.members.divisionPools = {
        addPool: function () {
            alert('test');  
        },

【问题讨论】:

    标签: knockout.js jquery-templates


    【解决方案1】:

    您提到action.DataBind 是一个字符串。这不起作用,“点击”绑定需要一个函数,而不是字符串。

    【讨论】:

      【解决方案2】:

      如果你想动态调用 javascript 函数,我会看看 How do I call a dynamically-named method in Javascript?

      在您的标记中,您会有以下内容:

      <a href="#" data-bind="click: function() { myViewModel.callDynamicFunction($data.action.DataBind) }">
      

      并在您的视图模型上添加功能:

      callDynamicFunction: function(funcName) { .. call function dynamically ... }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-29
        • 2014-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多