Knockout.js и функция динамической строки не работают - PullRequest
0 голосов
/ 26 марта 2012

Ниже я рендерил второй объект, который содержит строку для 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');  
        },

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Если вы хотите вызывать функции javascript динамически, я бы посмотрел на Как вызвать метод с динамическим именем в Javascript?

В вашей разметке вы могли бы что-то иметь построки:

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

и на вашем представлении модель добавьте функцию:

callDynamicFunction: function(funcName) { .. call function dynamically ... }
0 голосов
/ 26 марта 2012

Вы упоминаете, что action.DataBind является строкой. Это не будет работать, привязка 'click' ожидает функцию, а не строку.

...