2013-03-26 49 views
0

我旁边的情况...从功能暴露淘汰赛VIEWMODE到另一个功能

对于一些原因,我需要击倒视图模型绑定内部函数,并调用它的具体条款。

这是我的代码:

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(); 
} 

,然后从如果语句调用它,但也许有更好的解决办法...

回答

1

IzostanakViewModel是一个变量内的ApplyBindingsIzostanak()功能。你为什么不把它归还,以便你有参考?

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

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