2016-04-06 10 views
1

test.htmlという(私のテンプレート):NG-バインドが表示されないスコープ変数{{}}

<span data-ng-bind="emailSent.info"></span> 

JS:

$scope.resetPasswordEmail = "[email protected]"; 
// info is taken from a database with different languages 
$scope.emailSent = { 
    info: getInfoFromDatabase() // returns: 'Confirmation email sent to {{resetPasswordEmail}}, check your email.' 
}; 
angular.element(document.body).append($compile($templateCache.get('test.html'))($scope)); 

は、しかし、これはページ上のスパンで、以下になり:

Confirmation email sent to {{resetPasswordEmail}}, check your email. 

「入れ子にされた」スコープ変数を作成しようとしています。コンパイル済みのテンプレートを再度コンパイルする必要がありますか? これを達成するための適切な角度の方法がありますか?

答えて

1

更新された質問に基づいて、私はあなたがこれをやっている理由を知ります。それを行うには

キーは$interpolateを使用することです:

angular.module('app', []). 
 
controller('Ctrl', function($scope, $interpolate, $compile){ 
 
    $scope.resetPasswordEmail = "[email protected]"; 
 
    $scope.emailSent = { 
 
    info: $interpolate(getInfoFromDatabase())($scope) 
 
    }; 
 
    
 
    function getInfoFromDatabase(){ 
 
    return 'Confirmation email sent to {{resetPasswordEmail}}, check your email.' 
 
    } 
 
    angular.element(document.body).append($compile('<span data-ng-bind="emailSent.info"></span>')($scope)); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="Ctrl"></div>

+0

パーフェクト!私はAngularJSが何とかこれを達成できることを知っていました。 +1の例です。 –

+0

ありがとう!申し訳ありませんが、最初にやっていたことを理解できませんでした。 :) – Shomz

関連する問題