0

私は、Asp.Net WebForms (MVC で再実装する時間がない巨大な .net 2.0 サイトの移行) と asmx Web サービスを必要とするプロジェクトに取り組んでいます。ページが要求されると、サーバーによって送信され、SPA のように機能します。しばらくすると、悪夢のコードを回避するために JavaScript の背後にモデルが必要であることに気付きます。解決できない問題にぶつかるまで、Knockout.js を試してみました: ユーザー コントロールと Knockout.js ビュー モデルでのコードの再利用。私たちのユーザー コントロールには、複数のユーザー コントロールが 1 つのページに結合されている場合のビューモデルがあります。ノックアウトは単に機能しません。SPA Web アプリを作成する場合、Web フォームは典型的なスタックではないかもしれませんが、まあ... 要件は要件です.... 何か助けはありますか?

4

1 に答える 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 に答える