В настоящее время я занимаюсь разработкой с использованием ASP.NET, и я хотел бы начать работу с Knockout JS ... В основном, что я сделал, я скопировал код, представленный в первом руководство.Начало работы с нокаутом JS
Так я это в мой head
:
<script type="text/javascript">
function() {
// This is a simple *viewmodel* - JavaScript that defines the data and
behavior of your UI
function AppViewModel() {
this.firstName = ko.observable("Bert");
this.lastName = ko.observable("Bertington");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);
this.capitalizeLastName = function() {
var currentVal = this.lastName(); // Read the current value
this.lastName(currentVal.toUpperCase()); // Write back a modified value
};
}
// Activates knockout.js
ko.applyBindings(new AppViewModel());
}();
</script>
... вместе с
<script type="text/javascript" src="Scripts/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="Scripts/knockout-2.0.0.js"></script>
В моих body
я поместил
<!-- This is a *view* - HTML markup that defines the appearance of your UI -->
<p>
First name: <strong data-bind="text: firstName"></strong>
</p>
<p>
Last name: <strong data-bind="text: lastName"></strong>
</p>
<p>
First name:
<input data-bind="value: firstName" /></p>
<p>
Last name:
<input data-bind="value: lastName" /></p>
<p>
Full name: <strong data-bind="text: fullName"></strong>
</p>
<button data-bind="click: capitalizeLastName">
Go caps</button>
Код был взят из Нокаута JS, но как-то значения не связывают себя автоматически - в другом wo Это не работает для меня. Я что-то упустил?
Привет. Он работает, когда я разместил скрипт в нижней части тела. Разве JavaScript не всегда должен быть размещен наверху? – matt
Предпочтительно на дне. Вы хотите, чтобы элементы отображались до того, как браузер загрузит скрипты * обычно *. – eppdog