2016-11-10 9 views
0

私は自分のビューにhtmlをレンダリングしようとしています。このhtml内に関数呼び出しを挿入したいのですが、どうすればいいのか分かりません。ここに私のjavascriptは次のとおりです。onclick関数と一緒にHTMLをanglejsのビューに挿入する方法

 angular.forEach($scope.patients, function (patient) { 
     tableRow = tableRow + [ 
      '<div data-ng-click="popup("+patient+")">', 
       '<div class="name-container">+patient.name+</div>', 

      '</div>'].join(''); 
    }); 
    $scope.renderHTML =$sce.trustAsHtml(tableRow); 

    $scope.popup = function(patient) { 
    ... 

}; 

HTML:

<div data-ng-bind-html="renderHTML"> 
      </div> 

それがこの方法を使用して、ポップアップ()関数内で患者オブジェクトを追加することは可能ですか?

答えて

0

HTML: $ evalは異なる角度の表情

<div data-ng-bind-html="$eval(renderHTML)"> 
      </div> 

JS

を評価するのに役立ちますそれはあなたを助けるかもしれない、

angular.forEach($scope.patients, function (patient) { 
     tableRow = tableRow + [ 
      '<div data-ng-click="popup("'+patient+'")">', 
       '<div class="name-container">'+patient.name+'</div>', 

      '</div>'].join(''); 
    }); 
    $scope.renderHTML =$sce.trustAsHtml(tableRow); 

    $scope.popup = function(patient) { 
    ... 

}; 

あなたはポップアップ機能で患者のオブジェクトを渡しているが、私は思いますそれは動作しない可能性があります。それが動作しない場合JSON.stringify

を使用してみてくださいより多くの情報How to make ng-bind-html compile angularjs code

提案については、以下のリンクを参照してください。

angular.forEachの代わりにNGリピートディレクティブを使用してみてください。私はあなたの参考のために、NGリピートを使用して簡単にあなたの条件を達成することができると思う:MODIFIED

<div ng-repeat="patient in patients"> 
     <div data-ng-click="popup(patient)"> 
      <div class="name-container">patient.name</div> 
      </div> 
     </div> 
    </div> 

は、まあ、私はより多くを持っているこの

angular.forEach($scope.patients, function(value,key){ 
     tableRow = tableRow + [ 
      '<div data-ng-click="popup("'+patients[key]+'")">', 
       '<div class="name-container">'+patients[key].name+'</div>', 

      '</div>'].join(''); 
    }); 
    $scope.renderHTML =$sce.trustAsHtml(tableRow); 

    $scope.popup = function(patient) { 
    ... 

}; 
+0

をお試しください2k recordsとdata-ng-repeatは非常に遅く、このリストをレンダリングする別の方法をテストしています。 –

関連する問題