1

でNG-コントローラを使用する:?AngularJs - この作品NG-含ま

<div ng-include="'login.html'" flex ng-if="!loggedIn" ng-controller="LoginController"></div> 

はしかし、これは({{test}}何も出力しない)していません。

<ng-include src="'login.html'" flex ng-if="!loggedIn" ng-controller="LoginController"></ng-include> 

は何らかの理由がありますかそれともバグですか?

login.htmlと:

<p>{{test}}</p> 

LoginController:

function LoginController($scope){ 
    $scope.test = 'login'; 
} 
+1

それは機能しないとはどういう意味ですか?それは表示されません?コントローラはスコープ変数を渡しませんか?それは猿を表示しますか? –

+0

更新された質問をご覧ください。ありがとう。 – Shawn

答えて

1

「loggedI n "が定義されていますが、親コントローラで定義すると、両方の構文が期待通りに機能します。

Plunkr

<div ng-controller="PrntCtrl"> 
     <div ng-include="'test.html'" flex ng-if="!loggedIn" ng-controller="TestCtrl"></div> 
     <ng-include src="'test.html'" flex ng-if="!loggedIn" ng-controller="TestCtrl"></ng-include> 
    </div> 

考慮すべきいくつかの質問:あなたは、角度の どのバージョンを使用していますか? あなたのアプリはどのように定義されていて、コントローラはどのようにアプリに登録されていますか? "loggedIn"はどこに定義されていますか?

0

このディレクティブはわずか3引数受け入れるので:

  • ngIncludeを| SRC =文字列
  • のonload(別売)=文字列
  • 自動スクロール(別売)=文字列

... ngInclude Docs

EDITに従って:

あなたは、単に解決それをラップすることができます別の要素で...

<div ng-if="!loggedIn" ng-controller="LoginController"> 
    <div ng-include="'login.html'" flex></div> 
</div> 
+1

なぜ 'ng-if'をそこに置くことができますか? 'ng-if'は両方の例で動作します。 – Shawn

+0

あなたは解決することができます単純に別の要素でラップ... '

' –