2017-05-31 3 views
1

これまで私は非常に限定されたフロントエンドのスキルで何をしなければならなかったの90%をやったので、今私は助けが必要です。角度変数からjstree threeviewに移る

私はjstreeを使ってtreviewを構築しています。これは、以下に示すように静的データ(elseブロックのもの)に対しては問題ありません。

<script> 
    $(function() { 
     $("#list").jstree({ 
      "core": { 
       "data": function (node, cb) { 
        if (node.id === "#") { 
         cb([{ 
          "text": "Root", 
          "state": {"opened": true}, 
          "children": true 
         }]); 
        } else { 
         // This is the one I am try to populate dynamicaly 
         cb([{"id":"1","text":"Lis 1"},{"id":"2","text":"Lis 2"}]); 
        } 
       } 
      } 
     }); 
    }); 
</script> 

はしかし、私は今、ダイナミックな結果セットの角度可変のvm.list(HTMLページに{{ vm.list }}をダンプするために利用できる)から来るとelseブロックを移入する必要があるので、どのように私はそれを行うことができますか?ドキュメントには、人口データに関する詳細がいくつかありますが(htmlarray/jsonajaxlazy loadcallback)、私の必要とするものは何もありません。

vmをコールバック関数に3番目のパラメータとして渡し、elseブロックをcb(vm.cat);に変更することはやりませんでした。私のフロントエンドの知識が岩底になければ、私はより良い試みを思いつきました!私の角度コントローラがどのように見える

:私は実用的なソリューションを持っているが、私はよりよい解決策を持った人のために待っていますので、それを好きではない

'use strict'; 

module.exports = ['$on', '$timeout', 'listService', 
    function($on, $timeout, listService) { 
     var vm = this; 
     .... 
     load(); 
     .... 

     function load() { 
      // This is actually coming from an API and massive 
      vm.cat = [{'id':'1', 'text':'Lis 1'}, {'id':'2', 'text':'Lis 2'}]; 
     }; 
    } 
]; 

答えて

0

それがに内容をダンプするようそうでない場合は、私は残念ながら、これを受け入れるだろうDOM要素とその内容を読み取って、私の意見では少しハッキーで重いツリーを作成します。

<div id="data" style="display: none">{{ vm.cat }}</div> 


$(function() { 
    var data = $('#data').text(); 
    if (data) { 
     $("#list").jstree({ 
      "core": { 
       "data": JSON.parse(data) 
      } 
     }); 
    } 
}); 
関連する問題