1

私はゲーム用の Javascript アプリケーションを実行しています。目標は、MMORPG 用の「計算機のビルド」を作成することです。アプリケーションに既にストックされているデータとビューを同期したいと考えています。さまざまなフレームワークを検索してテストしたところ、ノックアウト js が最適なソリューションのように見えました

HTML:

<script>
var simulatorTool = new SimulatorTool();
</script>

<body>
<p data-bind="text: test"> </p>
<p data-bind="text: test2"> </p>
</body>

Javascript ツール:

function SimulatorTool()
{

meSim = this;

this.config = new Config();
this.data = new Data();
this.stuff = new Stuff();
this.traits = new Traits();
this.view = new AppViewModel();
$(function(){
    ko.applyBindings(meSim.view);
});

... functions

}

モデルを見る:

function AppViewModel() {
    this.test = "Test!";

    this.test2 = ko.computed(function() {
        return meSim.data.selectedData['profession']
    }, this); 
}

問題は、html を他のオブジェクトのビューにバインドする方法がわからないことです。それが可能かどうかさえわかりません。私はそのようなことをしたいです

 <p data-bind="simulatorTool.view, text: test"> </p>

そうでない場合、ビューがアプリケーションから分離されている場合、「SimulatorTool」内のデータにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

私はあなたがしたいことはこのようなものだと思います-例えばsimulator_tool.jsで:

var SimulatorTool = SimulatorTool || {};

SimulatorTool.ViewModel = function(initialData){
  //bindings etc
};

SimulatorTool.Start - function(initialData){
  var viewModel = SimulatorTool.ViewModel(initialData);
  ko.applyBindings(viewModel);
  return viewModel //if you want to play with it in the console...
};

次に、あなたのページで:

<script>
$().ready(function()){

  var payload = @Html.Raw(ViewBag.SimulatorJSON);
  SimulatorTool.Start(payload);

}
</script>

理想的には、SimulatorTool名前空間がすでに設定されているapplication.jsファイルがあるため、宣言を削除できます。JSONダンプがすでに構成を設定しているかどうか、または別の場所に設定されているかどうかはわかりませんが、通常、これはすべて、関数などを使用して独自の名前空間に属します。

SimulatorTool.Config = {

}

SimulatorTool.Stuff = {

}
//etc
于 2012-08-09T02:47:05.397 に答える