#javascript #knockout.js
#javascript #knockout.js
Вопрос:
В следующей скрипке я хотел бы иметь возможность устанавливать selectedFruit при нажатии на один из фруктов в списке, однако, похоже, это не работает.
После нажатия на фрукт, если я проверю значение ViewModel.selectedFruit в окне Chrome immediate, появится сообщение о том, что значение присваивается объекту ViewModel, а не привязанному элементу данных. Что я делаю не так? Похоже, что где-то происходит потеря контекста?
Спасибо
Заключение
Хотя это помогло отследить проблему, с которой я столкнулся в моем основном приложении, основная проблема заключалась в том, что в спешке я забыл использовать привязку шаблона KO foreach к моему <UL>
и вместо этого использовал templ foreach.
Ответ №1:
Ваша viewModel
переменная не имеет глобальной области видимости, поскольку для параметров скрипта установлено значение onLoad
для способа загрузки JavaScript. Если вы переключите его на no wrap (body)
, то будете в хорошей форме.
Единственное другое изменение заключается в том, что вы можете просто использовать $data
напрямую, а не $data()
.
Комментарии:
1. Большое спасибо — я знал, что это будет что-то тривиальное. Спасибо за ваши усилия и над KnockMeOut — я постоянный посетитель.