Я пытаюсь реализовать простой демо-код, который использует привязку hasFocus. Код примера доступен here Он также отлично работает в браузере (IE)knockout.js - hasFocus не работает
Когда я копирую тот же код и вставляю его в свое приложение MVC, он перестает работать. Даже если после нажатия кнопки кнопка не будет фокусироваться на текстовом поле. Ниже мой код:
<div>
<div>
<input data-bind="hasFocus: isSelected" />
<button data-bind="click: setIsSelected">Focus programmatically</button>
<span data-bind="visible: isSelected">The textbox has focus</span>
</div>
</div>
@section scripts{
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.7.1.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/knockout-2.1.0.js")"></script>
<script type="text/ecmascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.20.js")"></script>
<script>
$(function() {
var viewModel =
{
isSelected: ko.observable(false),
setIsSelected: function() { this.isSelected(true) }
};
ko.applyBindings(viewModel);
});
</script>
}
Кто-нибудь знает, что пошло не так?
Включен ли раздел сценария в выходной файл? Проверьте источник html отображаемой страницы. Возможно, вы нигде не показываете этот раздел. Используйте ['@ Html.RenderSection()'] (http://msdn.microsoft.com/en-us/library/gg537886%28v=vs.111%29.aspx) где-то в вашем макете. – SoonDead
Я просто попробовал это в своем приложении MVC, он отлично работает со всеми браузерами. как примечание, почему вы не используете Bundles? вместо прямой ссылки на скрипты? – avrahamcool
Спасибо @avrahamcool. На самом деле это ошибка в старой версии ko. Я загрузил последнюю версию нокаута с помощью packagemanager и его исправил в нем. (knockoutjs3.0.0) – user2243747