Основные детали в нокауте JS - PullRequest
1 голос
/ 25 декабря 2011

Что я делаю не так?Я пытаюсь создать простое представление основных данных в виде примера «канонического MVVM».

Вот упрощенный пример в JSfiddle, который не работает: http://jsfiddle.net/UJYXg/2/

Я ожидаю, чтоувидеть имя выбранного «элемента» в текстовом поле, но вместо этого оно говорит «наблюдаемый»?

Вот мой обидный код:

var list = [ { name: "item 1"} , { name: "Item 2" }];

var viewModel = {
    items : ko.observableArray(list),
    selectedItem : ko.observable(),
}

viewModel.setItem = function(item) {
    viewModel.selectedItem(item);   
}

ko.applyBindings(viewModel);

И HTML

<ul data-bind="foreach: items">
    <li>
        <button data-bind="click: $root.setItem, text:name"></button>
    </li>
</ul>

<p>
    <input data-bind="value:selectedItem.name" />
</p>

1 Ответ

3 голосов
/ 25 декабря 2011

Вы действительно близко. Просто нужно сделать value: selectedItem().name или лучше использовать привязку with для изменения вашей области видимости. Кроме того, скрипт, на который вы ссылаетесь, несколько устарел (в 2.0 щелчок передает данные в качестве первого аргумента).

Образец здесь: http://jsfiddle.net/rniemeyer/acUDH/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...