抽象状態とコントローラーを構文として使用して、ページの状態を次のように設定します。
# Details page route
.state 'title',
url: '/title',
abstract: true,
template: '<ui-view/>',
.state 'title.show',
url: '/:titleId',
templateUrl: 'title/show.html'
controller: 'Title as t'
このデモの目的のために、'Title' コントローラーの 't' インスタンスに変数を割り当て、これを Title コントローラー関数内で実行するとします。
angular.module('title').controller 'Title',
['$state', ($state) ->
this.name = 'Test'
そして、ビュー 'title/show.html' 内で、先ほど作成した変数をページに出力しようとします。
{{t.name}}
何も表示されません。ただし、コントローラーを ui-router から削除して、次のように 'title/show.html' ページをラップする要素に移動すると、次のようになります。
<div ng-controller="Title as t">
その後、すべてがうまくいきます。この問題に遭遇した人はいますか。別のアプリでは問題なく動作しているので、このアプリで何が違うのか、js ライブラリのバージョンの違いなのかをまだ把握しようとしています。
ベストアンサー1
状態構成では:
の代わりにcontroller: 'Title as t'
、以下を試してください:
controller: 'Title',
controllerAs: 't'
編集: 最小限のアプリを実装したところui-router
、構文も、今日の時点での最新バージョンcontroller: Title as t
の 0.2.0 で動作します。Angularスコープを調べると、インスタンスを確認できます。ui-router
t