0

私はjsView(v1.0.0-alpha)を使用しています

ビューからデータを取得する際に問題が発生しています。次のコードを用意しましょう。(ここで簡略化されたバージョンを作成しましたhttp://jsfiddle.net/j5oc0svg/ )プレースホルダー名を使用して、以前にビューにバインドしたデータオブジェクトを取得しようとしています。それは常に「過小評価」を返します。$.view().views を呼び出すと、先ほどバインドしたビューとデータが表示されます。

プレースホルダーまたは (ビュー名?) を使用して、ビューにバインドするデータを取得するにはどうすればよいですか?

前もって感謝します。

<!DOCTYPE html>        
<html>
<head>
  <script src="http://code.jquery.com/jquery.js"></script>
  <base href="http://www.jsviews.com/samples/"/>
  <link href="samples.css" rel="stylesheet"/>
  <script src="../download/jsviews.js"></script>
</head>
<body>

<table><tbody id="peopleList"></tbody></table>

<script id="personTmpl" type="text/x-jsrender">
  <tr>
    <td>Name</td>
    <td>{{:name}}</td>
  </tr>
</script>

<script>

           $.ajax({
                url: "http://localhost:4728/api/People/,
                dataType: 'json'
            }).done(function (data) {
                if (data!= null) {
                    var template = $.templates("#personTmpl");
                    template.link("#peopleList", data);
                }
            }).fail(function (exception) {
                console.log(exception.message);
            });


           // Let's say this code is in button on click or push subscriber 
           hub_proxy.client.UpdateSomething = function (someArgs) {
                  var data = $.view('#peopleList').data; //underfined.
           }

</script>

</body>
</html>
4

2 に答える 2

1

jsView では (一種の) コンポジットであるという事実を見逃しているようですViews。つまり、各 View オブジェクトには、とりわけ内部ビューのセットが含まれる場合があります。

$.view(selector)要素を含む最も外側のビューを取得しますselector。の場合#peopleList、それは他のビューのコンテナであり、独自のデータはありません。この場合、おそらく探している#peopleListのは、スコープ内にまだある最も内側の View を見つけることです。これは、 innerparam of$.view()を to に設定することで完了しtrueます。

console.log( $.view('#peopleList', true) ); // Array of Objects

または、各行の特定のデータ オブジェクトに移動することもできます。

console.log( $.view('#peopleList tr:eq(0)').data ); // Object {name: "Adriana"} 
console.log( $.view('#peopleList tr:eq(1)').data ); // Object {name: "Robert"}

デモ:eqここでは説明のためにセレクターを使用ただし、いつでもビューに名前を割り当てて、セレクターで参照できます。

于 2014-09-07T16:08:39.660 に答える