これは非常に初心者の質問かもしれませんし、一度にたくさんのものを使っているかもしれません。Revealing Module PatternでKnockoutJSを使用し、CoffeeScriptを作成しようとしています。モデルを別の関数に入れました。コードは次のとおりです。
myapp =(->
person =->
firstname = ko.observable "k"
lastname = ko.observable "d"
firstname:firstname,
lastname:lastname
person : person
)()
$(->
ko.applyBindings(new myapp.person())
@
)
これで、VisualStudioのワークベンチを使用してJavaScriptが次のように作成されます。
(function() {
var myapp;
myapp = (function() {
var person;
person = function() {
var firstname, lastname;
firstname = ko.observable("k");
lastname = ko.observable("d");
return {
firstname: firstname,
lastname: lastname
};
};
return {
person: person
};
})();
$(function() {
ko.applyBindings(new myapp.person());
return this;
});
}).call(this);
これにより、バインドする要素が見つかる可能性があるというエラーが発生します。簡単なHTMLテキストは次のとおりです。
<p>
Firstname<span data-bind="text: myapp.person().firstname"></span>
Lastname<span data-bind="text: myapp.person().lastname">
</span>
</p>
自己呼び出し関数なしで通常のJavaScriptを作成すると、正常に機能します。関数は次のとおりです。
myapp = (function () {
var person;
person = function () {
var firstname, lastname;
firstname = ko.observable("k");
lastname = ko.observable("j");
return {
firstname : firstname,
lastname : lastname
}
}
return {
person: person
}
})();
$(function () {
ko.applyBindings(new myapp.person());
})
誰かがここで何が悪いのか説明できますか?または、KnockoutJSを使用するCoffeeScriptを作成する別の方法はありますか?
さらに詳細が必要な場合はコメントしてください。