2016-11-29 5 views
0

HTMLNG-バインドHTMLディレクティブは、ASYNC機能から来て

<div ng-bind-html="retrievedData.summary.classAvgGrade"></div> 

JS

var data = { 
    summary:{ 
    classAvgGrade:0,//10 (change by yourself) 
    student:12 
    } 
} 

angular.module('myapp', ['ngSanitize']) 
    .controller('foo', function($scope, $interval) { 
    $interval(function() { 
     $scope.retrievedData = data; 
    }, 1000); 
    }); 

angular.bootstrap(document, ['myapp']); 

DEMO

注:

  1. ng-bindの代わりにng-bind-htmlを使用すると動作します。
  2. 非同期呼び出しが

    $scope. retrievedData= { 
        summary:{ 
         classAvgGrade:0 
        } 
    } 
    

答えて

0

を作った前にそうでない場合、我々は(宣言)オブジェクトを定義することができます編集

問題は、あなたがアプリを手動でブートストラップされたということでした。アプリを手動でブートストラップする必要がない場合は、これがうまくいく可能性があります。もう一つの興味深い点は、最初にの角度1.3.7を使用し、実際にゼロが表示されなかった場合、の角度1.5.8に変更され、機能しました。多分これに関連していくつかの問題があります(角バージョン)。

コードを変更しました。下の1.5.8を切り捨てた作業を参照してください。

var data = { 
 
    summary: { 
 
    classAvgGrade: 0, //10 (change by yourself) 
 
    student: 12 
 
    } 
 
} 
 

 
angular.module('myapp', ['ngSanitize']) 
 
    .controller('foo', function($scope, $interval) { 
 

 
    $interval(function() { 
 
     $scope.retrievedData = data; 
 
    }, 1000); 
 
    }); 
 

 
//angular.bootstrap(document, ['myapp']); //do not bootstrap manually
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-sanitize.js"></script> 
 

 
<div ng-app="myapp"> 
 
    <div ng-controller="foo"> 
 
    <div>Class Average Grade:</div> 
 
    <div ng-bind-html="retrievedData.summary.classAvgGrade"></div> 
 
    <br/> 
 
    <div>Students:</div> 
 
    <div ng-bind-html="retrievedData.summary.student"></div> 
 
    </div> 
 

 
</div>

+0

おかげで、しかしretrievedDataは唯一の私は今、コードを更新し、一つのオブジェクトを置くだけで、デモの目的のために、多くのオブジェクトが含まれています。 – Balachandran

+0

@Balachandran私の答えを編集して参照してください。私も角度1.4.8を使用してみましたが、動作は同じですが、ゼロは表示されません。角度1.5.8でうまく動作します。どのバージョンを使用していますか? – lealceldeiro

関連する問題