2016-05-09 6 views
0

次の作品は完璧です。私のアプリケーションファイルapp.jsで 、私はすぐに私は次のような名前のビューを使用しようとして名前付きビューでコントローラが定義されていません

.state('nna.home', 
{ 
    url: '/home', 
    views: { 
     templateUrl: 'views/home.html'     
    } 
}) 

//home.html is like 

<script src="../controllers/home.js"></script> 
<div class="container cf" ng-controller="home"> 

// my home.js is included correctly in all cases have code like 
alert(2); // works 
app.controller('home', function ($scope) { 
    alert(2); // works 
}); 

のような状態を持っていますが。それは私がインデックス内のすべてのコントローラファイルを読み込むよう

.state('nna.home', { 
    url: '/home', 
    views: { 
     'v1' : { 
     templateUrl: 'home.html', 
     controller: 'home', 
     resolve: { 
      deps: function ($ocLazyLoad) { 
       return $ocLazyLoad.load('homecontroller.js'); 
      } 
      } 
     }, 
    } 



// my home.js is included correctly in all cases have code like 
alert(2); // works 
app.controller('home', function ($scope) { 
    alert(2); // Does not work 
}); 

Plunker

が、私は罰金限り、それらを使用することができ、ルーティング停止しますが、私はインデックスのみのビューではないすべての方法でコントローラをロードする

おそらく問題は名前付きビューについての私の理解ですが、ファイルが正常に追加されたことを警告で表示することができても、homeが未定義の理由を知りたいと思っています。

+0

あなたは親テンプレートに '

'を持っていますか? –

+0

明確な説明があります:http://stackoverflow.com/a/33139917/1679310またここでもhttp://stackoverflow.com/a/33119575/1679310 –

+0

@RadimKöhler、申し訳ありませんが、私は2つの答えから明らかなようなものは得られませんでした。そして、質問は、名前付きビューを使用するときに、そのビューにのみスコープが限定された別のcontroller.jsファイルを含める/参照する方法を尋ねます – Sami

答えて

0

これを試してみてください:

.state('nna.home', 
    { 
     url: '/home', 
     views: { 
      'v1': { 
       templateUrl: 'views/home.html', 
       controller: 'home' 
      } 
     } 
    }) 
+0

いいえ、申し訳ありません..同じエラー – Sami

0

a working plunker

あり、これらは状態が考えられます。

.state('nna', { 
    template: '<div ui-view="v1"></div>', 
}) 
.state('nna.home', { 
    url: '/home', 
    views: { 
     'v1' : { 
     templateUrl: 'views/home.html', 
     controller: 'home', 
     }, 
    } 
}); 

そして、これらのリンク今、取り組んでいる:

<a href="#/home"> 
<a ui-sref="nna.home"> 

が行動でそれを確認してくださいhere

関連する問題