2015-05-10 3 views
0

У меня есть viewModel, есть наблюдаемая переменная, но когда я присваиваю значение наблюдаемому, она станет неопределенной.Нокаут наблюдаемая переменная undefined

var ScDmfViewModel = (function() { 
    var selectedRequestItem = ko.observable(""); 
    return { 
    SelectedItemUom: selectedItemUom, 
    }; 
})(); 

В другом Javascript Файл Поручаю Значение 1 к нему:

ScDmfViewModel.SelectedItemUom(1); 

Но как только я отладки это его значение показывает

ScDmfViewModel.SelectedItemUom():undefined 
+1

Возможно, это будет только опечатка, но 'selectedRequestItem'! =' SelectedItemUom'. – JohnnyHK

ответ

0

Ответ, прежде чем я определил код я называю JSON вызов, где он будет возвращать значение и сброс наблюдаемого значения. Thats Why Undeifiend

0

Я думаю, что это то, что вы хотели :

var ScDmfViewModel = (function() { 
    var selectedRequestItem = ko.observable(""); 
return { 
SelectedItemUom: selectedRequestItem 
}; 
})(); 
+0

Почему -1? у исходного кода есть ошибка, и это исправляет его. – Amit

+0

Возможно, вы должны добавить некоторые детали своего ответа относительно того, что не так с исходным кодом и как это исправляет его. – JohnnyHK

0

Вы можете попробовать это. Определите конструктор для ViewModel с параметром selectedRequestItem и accessor get set для изменения вашего параметра. Как класс объекта.

// *** definition viewModel *** 
function ScDmfViewModel() { 

    this.selectedRequestItem = ko.observable(); 

    this.setSelectedItemUom = function (value) { 
     this.selectedRequestItem(value); 
    }; 

    this.getSelectedItemUom = function() { 
     return this.selectedRequestItem(); 
    }; 
} 

// ** Create vm ** // 
var vm = new ScDmfViewModel(); 

// set data 
vm.setSelectedItemUom(1); 

// get data 
alert(vm.getSelectedItemUom()); 

http://jsfiddle.net/rniemeyer/LkqTU/