2014-01-28 63 views
1

我正在開發ASP.Net MVC 5和KnockoutJs中的會計軟件。 我是KnockoutJs和Javascript的新手,所以有些困難。傳遞可觀察數組作爲函數參數

我想將一個可觀察數組傳遞給一個函數,該函數將爲我計算帳戶代碼。在那個函數中,我需要這個數組。

我的代碼:

self.SUBACCOUNTS = ko.observableArray([]); 
self.selectedSubAccount.subscribe(function (newValue) {       
    self.ACCOUNT_CODE = GenrateAccountCode(self.SUBACCOUNTS()); 
}); 
function GenrateAccountCode(accArray) 
{ 
    //want to access some value of the passed array here 
} 

我想上面的函數的返回值分配給一個觀察的變量(self.ACCOUNT_CODE)。

回答

0

要訪問您觀察到的陣列的一些值,則可以使用ko.utils.arrayForEach功能與下面的示例用法:

// where accArray === self.SUBACCOUNTS() 
function GenrateAccountCode(accArray) 
{ 
    var initialCode = 0; 
    //want to access some value of the passed array here 
    ko.utils.arrayForEach(accArray, function(subaccount){ 
     // process the values of the array here. Assume each SUBACCOUNTS() item has a code property 
      initialCode += subaccount.code(); 
    }); 
    return initialCode; 
} 

,然後設置你的self.ACCOUNT_CODE觀察到的是函數的返回值,可以這樣做:

self.ACCOUNT_CODE(GenerateAccountCode(self.SUBACCOUNTS())

+0

非常感謝rwisch。問題解決了 –