1. ホーム
  2. angularjs

[解決済み] AngularJSのng-includeは$scopeで渡されないとビューを含まない

2022-09-09 04:45:56

質問

とするのは間違いでしょうか? ngInclude は生のパスを取ることができると仮定するのは間違いですか? 私は自分の ngInclude を次のように設定しようとしています。

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

これは動作しませんが、このようにすると動作します。

// 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パーシャルのストレートインクルードではないのでしょうか。

どのように解決するのですか?

ng-include は式を受け付けます。 もしそこで明示的なURLを直接指定したい場合は、文字列を指定する必要があります。

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