2013-10-02 13 views
5

私は最近、私が持っていたレールアプリを分割し、フロントエンドをyeomanと別のアプリとして作成しました。ビューをレンダリングしていないui-router

'use strict'; 

    var actionTrackApp = angular.module('actionTrackApp', [ 'ui.router', 'ngGrid']); 
    actionTrackApp.config(function($locationProvider) { 
     return $locationProvider.html5Mode(true); 
    }); 
    actionTrackApp.config(function($stateProvider){ 
     $stateProvider 
     .state("packageIndex", { 
      url: "/packages", 
      views: { 
      "main": { 
       controller: "ApplicationCtrl", 
       template: "<h1>Test</h1>" 
      }, 
      "": { 
       template: "<h1>Test2</h1>" 
      } 
      }, 
      resolve: { 
      test: function(){ 
       console.log("test") 
      } 
      } 
     }) 
    }); 

と私のindex.htmlファイルに私が持っている:何らかの理由で、もはや私の見解は、例えば私のアプリが定義され、レンダリングしない

bodytag ng-app="actionTrackApp" ng-controller="ApplicationCtrl"> 
    your site or application content here<a href='/packages'>Package Index</a> 

    <div ng-view="main" class="container"></div> 
    <div ng-view=""></div> 
/bodytag 

を私はresolveプロパティが解決しないリンクをクリックするとし、私はコンソールで "テスト"を参照してください。私はアプリケーションコントローラに$ routeChangeStart/success watchをつけてみましたが、起動/成功はここでは起動しません。

+0

...先に行って、代わりに/パッケージのURLをハードコーディングのあなたのリンクにui-srefを使用しました。 – zsong

+0

複数のビューを使用することはできません。 – jvans

+0

私はそうは思いませんが、どちらかといえば動作しません。 – zsong

答えて

4

私はあなたのコードを見ていたし、UI-ルータのビューを参照するために夫婦の問題

  1. を見つけ、あなたが「」ビューが正しく定義され、ディレクティブui-viewを使用しないでng-view
  2. 必要があります - あなたは有効なキー名を使用する必要があり、私はaにそれを変更し、私はこれらの変更を行った後、HTML

に参照を更新し、ここでは期待通りにすべてが動作します。http://plnkr.co/edit/lxAUGMqajwI461VKz8xo

PS:私はあなたが一つだけ `NG-view`が定義されていることができ

+0

それはそれでした。ご協力いただきありがとうございます。 ui-srefは間違いなく正しいアプローチです。私は ""有効だと思う。私はあなたのプランナーと一緒に遊んでいて、それはまだui-view = ""とビュー{: ":{template:"

Test2

"}}で動作します。 – jvans

+0

ああ...興味深い、私は空の文字列キーについて間違っていたと思います。 – bendalton

関連する問題