我無法弄清楚如何獲取綁定項目的屬性。當.name()在那裏時,以下不起作用。如何使用Knockout訪問綁定對象實例的屬性
<span data-bind='text: selectedMenuSection().name()'></span>
似乎您無法訪問數據綁定中綁定對象的屬性。相同的語法在模型函數MenuViewModel.showSelection()中起作用。我嘗試了所有可能的語法,但都沒有成功。以下是我的代碼摘錄。
的Html
MenuSections: <select data-bind="options: leftMenu, optionsText: 'name', value: selectedMenuSection, optionsCaption: 'Pick...'"> </select>
Selected: <span data-bind='text: selectedMenuSection().name()'></span>
<button data-bind="click: showSelection">Show Selected Info</button>
的JavaScript
function MenuViewModel (menu) {
var self = this;
self.leftMenu = ko.observableArray(menu);
//Bound to Select
self.selectedMenuSection = ko.observable();
self.showSelection = function(){
alert(self.selectedMenuSection().name());
};
};
是沒可能得到一個數據綁定對象屬性或有我只是沒有想出怎麼辦呢?
這樣做的工作,但我現在可以讓我的代碼工作,這一切都讓我對Knockout和它如何工作更多思考。我發現我的代碼工作,如果我把以下self.selectedMenuSection = ko.observable(菜單[0]);在但不起作用,如果我這樣做self.selectedMenuSection = ko.observable(self.leftMenu [0]); – Mikee
這是因爲self.leftMenu是一個observable(數組),你想要的是底層的值:self.leftMenu()[0]。通過淘汰賽,最重要的訣竅就是要知道什麼時候需要可觀測數據,何時需要數據。 –