2013-10-02 7 views
5

Ich habe vor kurzem eine Rails-App geteilt, die ich hatte und das Front-End als separate App mit Yeoman erstellt. Aus irgendeinem Grund nicht mehr meine Ansichten machen, zum Beispiel meine app definiert:UI-Router nicht Rendering-Ansichten

'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") 
      } 
      } 
     }) 
    }); 

und in meiner Datei index.html Ich habe:

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 

Wenn ich auf den Link klicken die resolve-Eigenschaft löst und Ich sehe "Test" in der Konsole. Ich habe versucht, $ routeChangeStart/Erfolg Uhren auf Application Controller, aber weder Start/Erfolg Feuer hier.

+0

Sie können nur einen 'ng-view' definiert haben. – zsong

+0

Nein, Sie können mehrere Ansichten verwenden. Es funktioniert auch nicht mit 1 – jvans

+0

Ich glaube nicht. – zsong

Antwort

4

habe ich einen Blick auf den Code und fand ein paar

  1. ui-Router Ansichten zu verweisen gibt, können Sie die Richtlinie ui-view, ist nicht verwenden müssen ng-view
  2. die „“ Ansicht falsch definiert - Sie einen gültigen Schlüssel Namen verwenden müssen, habe ich es zu a und die Referenz im html
  3. aktualisiert

Nachdem ich diese Änderungen vorgenommen, alles funktioniert wie hier erwartet: http://plnkr.co/edit/lxAUGMqajwI461VKz8xo

ps: Ich ging weiter und verwendet ui-sref auf Ihren Link anstelle von Hartcodierung der/Paket url ...

+0

Super das war es. Danke für Ihre Hilfe. ui-sref ist auch hier der richtige Ansatz. Ich denke "" ist jedoch gültig. Ich habe mit deinem Plunker gespielt und es funktioniert immer noch mit ui-view = "" und Sichten: {"": {template: "

Test2

"}}. – jvans

+0

Aha ... interessant, ich glaube, ich lag falsch mit dem leeren String-Schlüssel ... gut zu wissen. – bendalton