VueJSの関数を持つカスタムデータオブジェクト

ジョンP

テーブルコンポーネントのデータ部分としてカスタムDataSourceオブジェクトを作成しようとしていますが、VueJSはオブジェクトをリアクティブにするために書き直しているようです。vueコンポーネントは直接データ値(つまりthis.dataSource.columnsまたはthis.dataSource.sort)に正常にアクセスできますが、オブジェクト内の関数を呼び出すことはできず、(たとえば)dataSourceを使用することもできません。フィルタリング/ソートされた行データを取得するための.rows()関数。VueはプランのJavaScriptデータオブジェクトでのみ機能しますか?または、これを機能させるために使用できるトリックはありますか?

次のようなテーブルコンポーネントでオブジェクトを使用したいと思います。

<table ref="bodyTable" class="table-body">
    <tbody>
        <tr v-for="row in dataSource.rows" >
            <td v-for="column in dataSource.columns">{{row[column.name]}}</td>
        </tr>
    </tbody>
</table>

ただし、vueはdataSource.rows関数を使用したり、オブジェクト内の他のメソッドを呼び出したりすることはできません。

function RealtimeDataStore(columns,data,sort,filter){
    this.columns = columns;
    this._data = data;
    this.sort = sort;
    this.filter = filter;
    this.keyField = findKeyColumn();
    function updateData(data){
        //TODO: merge or insert the data into the this._data array
        //TODO: let parent component know data changed
    }
    function findKeyColumn(){
        for(var i=0;i<columns.length;i++){
            if(columns[i].isKey) return column[i].name;
        }
        return null;
    }
    function setSort(sortData){
        //TODO: verify sortData is in correct format and all columns are found
        this.sort = sortData;
        //TODO: let the component know data may have changed
    }
    function setFilter(filterData){
        //TODO: verify filterData is in correct format and all columns are found
        this.filter = filterData;
        //TODO: Let the component know data may have changed
    }
    function rows(){
        //TODO: filter data if needed
        //TODO: sort data if needed
        return this._data;   
    }

}
バート

通常、はい、VueのデータにはプレーンなJavaScriptオブジェクトを使用するのが最善です。

ただし、この場合、コードが機能しないのはそのためではありません。

まず、rowsのスコープ内で宣言されており、スコープRealtimeDataStore外ではアクセスできません。第二に、コードはそれを関数として呼び出しません。row in dataSource.rowsである必要がありますrow in dataSource.rows()

これは、コードを機能させる方法の例です。

console.clear()

function DataSource(){
    this.rows = function(){
      return [1,2,3]
    }
}

new Vue({
  el: "#app",
  data:{
    source: new DataSource()
  }
})
<script src="https://unpkg.com/[email protected]"></script>
<div id="app">
  <div v-for="row in source.rows()">
    {{row}}
  </div>
</div>

rows結果として返されるオブジェクトの関数として公開されていることに注意してくださいnew DataSource()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

引数を持つカスタムオブジェクトを持つQVector?

分類Dev

関数パラメーターを持つオブジェクトのインデックス署名

分類Dev

javascriptオブジェクトにカスタムの「データ」を持つdivが含まれていますが、データを表示できません

分類Dev

unique_ptrメンバーとカスタムデストラクタを持つオブジェクトのベクトル

分類Dev

複数のボタンを持つJavaScriptゲームオブジェクト

分類Dev

より大きなオブジェクトヘッダーを持つカスタムJVMの作成

分類Dev

個別のデータソースオブジェクトを持つUITableViewController

分類Dev

オブジェクトのリストをソートするためのPythonカスタム関数

分類Dev

カスタムオブジェクトをデータ型として持つArrayListを対応する通常の配列に変換できません

分類Dev

オブジェクトの1つの変数のGsonカスタムデセラライザー

分類Dev

Swift言語のカスタムオブジェクトを持つジェネリック型

分類Dev

`htest`オブジェクトからデータを抽出するカスタム関数でスコープの問題を解決する

分類Dev

倍数のソースから構築物オブジェクトは、カスタム関数を8にJAVA

分類Dev

JS-カスタムjsオブジェクトのユーザー定義関数を作成する

分類Dev

オブジェクトパラメータを持つrequire()関数?

分類Dev

タイプ「オブジェクト」の参照を持つクラスのアクセスデータメンバ

分類Dev

Java でカスタム オブジェクトのサイズを返すヘルパー関数

分類Dev

キーと値のリストを持つオブジェクトへのデータを持つオブジェクト-javascript

分類Dev

Javaストリームマップは、カウンタを持つオブジェクトを作成します

分類Dev

ArrayListのオブジェクトのロードに関するエラーロジック(リストには同じデータを持つ複数のオブジェクトがあります)

分類Dev

Javascript-オブジェクトとしてオプションのパラメータを持つ関数?

分類Dev

他のクラスからオブジェクトへのポインタを受け取るメンバー関数を持つ2つのクラス

分類Dev

カスタム文字列フォーマット関数からの出力として常に「[オブジェクトオブジェクト]」を取得する

分類Dev

デフォルトのプロパティを持つカスタムオブジェクトをディクショナリに追加する

分類Dev

Djangoのインポート/エクスポートオブジェクトの関係を持つデータのインポート

分類Dev

カスタムオブジェクトを持つNSArrayを含むNSArrayでのNSPredicate検索

分類Dev

値を持つカスタムプロパティを持つオブジェクトを使用してデータベースをモデル化するための最良の方法

分類Dev

Asp.netMVCリストアイテムを持つオブジェクトにデータを入力する

分類Dev

コンストラクター引数からのObject.assign()プロパティを持つTypeScriptデータオブジェクトクラス

Related 関連記事

  1. 1

    引数を持つカスタムオブジェクトを持つQVector?

  2. 2

    関数パラメーターを持つオブジェクトのインデックス署名

  3. 3

    javascriptオブジェクトにカスタムの「データ」を持つdivが含まれていますが、データを表示できません

  4. 4

    unique_ptrメンバーとカスタムデストラクタを持つオブジェクトのベクトル

  5. 5

    複数のボタンを持つJavaScriptゲームオブジェクト

  6. 6

    より大きなオブジェクトヘッダーを持つカスタムJVMの作成

  7. 7

    個別のデータソースオブジェクトを持つUITableViewController

  8. 8

    オブジェクトのリストをソートするためのPythonカスタム関数

  9. 9

    カスタムオブジェクトをデータ型として持つArrayListを対応する通常の配列に変換できません

  10. 10

    オブジェクトの1つの変数のGsonカスタムデセラライザー

  11. 11

    Swift言語のカスタムオブジェクトを持つジェネリック型

  12. 12

    `htest`オブジェクトからデータを抽出するカスタム関数でスコープの問題を解決する

  13. 13

    倍数のソースから構築物オブジェクトは、カスタム関数を8にJAVA

  14. 14

    JS-カスタムjsオブジェクトのユーザー定義関数を作成する

  15. 15

    オブジェクトパラメータを持つrequire()関数?

  16. 16

    タイプ「オブジェクト」の参照を持つクラスのアクセスデータメンバ

  17. 17

    Java でカスタム オブジェクトのサイズを返すヘルパー関数

  18. 18

    キーと値のリストを持つオブジェクトへのデータを持つオブジェクト-javascript

  19. 19

    Javaストリームマップは、カウンタを持つオブジェクトを作成します

  20. 20

    ArrayListのオブジェクトのロードに関するエラーロジック(リストには同じデータを持つ複数のオブジェクトがあります)

  21. 21

    Javascript-オブジェクトとしてオプションのパラメータを持つ関数?

  22. 22

    他のクラスからオブジェクトへのポインタを受け取るメンバー関数を持つ2つのクラス

  23. 23

    カスタム文字列フォーマット関数からの出力として常に「[オブジェクトオブジェクト]」を取得する

  24. 24

    デフォルトのプロパティを持つカスタムオブジェクトをディクショナリに追加する

  25. 25

    Djangoのインポート/エクスポートオブジェクトの関係を持つデータのインポート

  26. 26

    カスタムオブジェクトを持つNSArrayを含むNSArrayでのNSPredicate検索

  27. 27

    値を持つカスタムプロパティを持つオブジェクトを使用してデータベースをモデル化するための最良の方法

  28. 28

    Asp.netMVCリストアイテムを持つオブジェクトにデータを入力する

  29. 29

    コンストラクター引数からのObject.assign()プロパティを持つTypeScriptデータオブジェクトクラス

ホットタグ

アーカイブ