私は、Asp.Net WebForms (MVC で再実装する時間がない巨大な .net 2.0 サイトの移行) と asmx Web サービスを必要とするプロジェクトに取り組んでいます。ページが要求されると、サーバーによって送信され、SPA のように機能します。しばらくすると、悪夢のコードを回避するために JavaScript の背後にモデルが必要であることに気付きます。解決できない問題にぶつかるまで、Knockout.js を試してみました: ユーザー コントロールと Knockout.js ビュー モデルでのコードの再利用。私たちのユーザー コントロールには、複数のユーザー コントロールが 1 つのページに結合されている場合のビューモデルがあります。ノックアウトは単に機能しません。SPA Web アプリを作成する場合、Web フォームは典型的なスタックではないかもしれませんが、まあ... 要件は要件です.... 何か助けはありますか?
質問する
147 次
1 に答える
0
あなたのシナリオで私がすること(私は過去に自分でやったことがあるので):
グローバル ViewModel オブジェクトを用意します。たとえば、次のようにします。
var _ViewModel = {}
コントロールごとに、ViewModel のその部分を設定する関数を用意します (これは .ascx に入り、JS ファイル関数を指します)。
<script language="javascript">
var _ViewModel // this should be in a global.js file or something.
SetupThisViewModel()
ko.applyBindings(_ViewModel);
</script>
そしてJSファイルで:
// Used for user control 1
function SetupThisViewModel()
{
_ViewModel.testItem = ko.observable('');
}
// Used for user control 2
function SetupThisViewModel2()
{
_ViewModel.testItem2 = ko.observable('');
}
また、1 ページに 2 つのユーザー コントロールが必要な場合は、次のようにします。
<script language="javascript">
var _ViewModel // this should be in a global.js file or something.
SetupThisViewModel();
SetupThisViewModel2();
ko.applyBindings(_ViewModel);
</script>
これは、シナリオで機能します。
于 2013-02-18T14:36:42.120 に答える