2012-09-20 21 views
120

ngIncludeは生のパスを取ることができると仮定するのは間違っていますか?これは動作しません

<div ng-include src="views/header.html"></div> 

が、私はこのようにそれが仕事をして何かをする場合:私は、次のように私のngIncludeを設定しようとし続けます。

// HeaderController 
app.controller('HeaderCtrl', function($scope){ 
    $scope.templates = {[ 
    template: { url: 'views/header.html' } 
    ]}; 

    $scope.template = $scope.templates[0].template; 
}); 
私のindex.htmlで

<div ng-controller="HeaderCtrl"> 
    <div ng-include src="template.url"></div> 
</div> 

のみスコープのオフ値以外ngIncludeしていますか?もしそうなら、それはなぜこの方法であり、htmlの部分的な部分をまっすぐには含みません。

答えて

326

ng-includeは式を受け入れます。 ここに明示的なURLを直接指定する場合は、文字列を指定する必要があります。

他のディレクティブとして
<div ng-include src="'page.html'"></div> 
+0

いや、単にそれをみた。私が見ていた例では、以前のバージョンの角度を使用していました。 – Chad

+44

今日の午後は、これを理解しようと多くの時間を費やしました。コースの*それは文字列である必要があります。それは*完全な意味になります。 –

+0

は、アプリケーションモジュールで有効になっているngSanitizeでは機能しません。私は解決策を探しています。 – Dida

1

ng-include、(ng-classng-src ...)スコープからの角度発現を評価します。引用符('')がなければ、スコープの変数を検索します。


src属性を指定する必要はありません。

<div ng-include src="'views/header.html'"></div> 

はにrewrittedすることができます:(それは簡単です)あなたはまた、要素としてNG-含んを使用することができます

<div ng-include="'views/header.html'"></div> 

<ng-include src="'views/header.html'"></ng-include> 
関連する問題