0

我有下一个情况...

由于某些原因,我需要在函数内部绑定淘汰赛 ViewModel 并按特定条件调用它。

这是我的代码:

if (... some conditions ...) {
        var polugodiste = $("#polugodiste").val();

        ApplyBindingsIzostanak(polugodiste); 

        $('#flip-min').change(function () {
            IzostanakViewModel.selectedPolugodiste(parseInt($(this).val()));
            IzostanakViewModel.GetIzostanci();
        });     
    }

和功能:

function ApplyBindingsIzostanak(polugodiste)
{
    var Izostanak = function (cas, tekst) {
        this.Cas = cas;
        this.Tekst = tekst;
    };

    var IzostanakViewModel = {
        selectedStatus: ko.observable(),
        selectedPolugodiste: ko.observable(polugodiste),
        ucenikIzostanakList: ko.observableArray([]),
        GetIzostanci: function () {
            .. do some code ...
        }
    };

    ko.applyBindings(IzostanakViewModel);
}

绑定正在工作,但是当我尝试IzostanakViewModel在我的内部调用时出现错误if,它说IzostanakViewModel 未定义。

我可以以及如何从函数中公开IzostanakViewModel并在 if 语句中使用它吗?

笔记*

我可以尝试这样的事情:

将此代码添加到ApplyBindingsIzostanak()

window.foo = function() {
 IzostanakViewMode.GetIzostanci();
}

然后从if语句中调用它,但也许有更好的解决方案......

4

1 回答 1

1

IzostanakViewModelApplyBindingsIzostanak()函数内的变量。你为什么不直接返回它以便你有参考呢?

function ApplyBindingsIzostanak(polugodiste)
    // ...
    return IzostanakViewModel;
}
var IzostanakViewModel = ApplyBindingsIzostanak(polugodiste); 

$('#flip-min').change(function () {
    IzostanakViewModel.selectedPolugodiste(parseInt($(this).val()));
    IzostanakViewModel.GetIzostanci();
});     
于 2013-03-26T15:28:58.577 回答