2013-03-26 91 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(); 
});