2016-09-28 70 views
0

我正在尝试生成新路线。这些都是我的文件:无法从状态角度解析状态

config.route.js

(function() { 
    'use strict'; 

    angular 
     .module('app.language') 
     .run(appRun); 

    appRun.$inject = ['routehelper']; 

    function appRun(routehelper) { 
     routehelper.configureRoutes(getRoutes()); 
    } 

    function getRoutes() { 
     return [{ 
     state: 'language', 
     config: { 
      abstract: true, 
      url: '/talen', 
      templateUrl: 'client/app/project-language/language.layout.html', 
      controller: 'LanguageLayout', 
      controllerAs: 'vm', 
      title: 'Talen', 
      handleSplash: true, 
      path: [] 
     } 
     }, { 

     state: 'language.talen', 
     config: {   
      url: '/talen', 
      templateUrl: 'client/app/project-language/project.language.html', 
      controller: 'ProjectLanguage', 
      controllerAs: 'vm', 
      title: 'Talen', 
      handleSplash: true, 
      path: [] 
     } 
     }] 
    } 
}) 

这是我language.layout.js文件:

(function() { 
    'use strict'; 

    angular 
     .module('app.language') 
     .controller('LanguageLayout', LanguageLayout); 

    LanguageLayout.$inject = ['$scope']; 

    function LanguageLayout($scope) { 
     var vm = this; 

     vm.states = [{ 
     ref: 'language.talen', 
     title: 'Talen' 
     }] 

     activate(); 


     function activate() { 

     } 
    } 

}) 

这是我project.language。 js file:

(function() { 
    angular.module('app.language') 
    .controller('ProjectLanguage', ProjectLanguage); 

    ProjectLanguage.$inject = ['$scope', '$state', '$stateParams', '$q', '$http', 'logger', 'initialData', 'dataservice']; 

    function ProjectLanguage($scope, $state, $stateParams, $q, $http, logger, initialData, dataservice) { 
     var vm = this; 

    } 

})(); 

我做了一个函数打开这个语言页面:

function openLanguage() { 
     $state.go("project-language"); 
     } 

这些功能连接在HTML5页面:

<li><a ng-click="vm.openlanguage()"><i class="fa fa-cogs fa-fw"></i>Settings</a></li> 

当我点击这个链接,我得到这个错误:

无法从状态“项目”中解析'项目语言'

我搜索过很多关于谷歌和stackoverflow,但我不明白我的解决方案。我在做什么错误的路线?

谢谢你的时间。

UPDATE:plunker

https://plnkr.co/edit/bgUPAh7Z7dCFrTyRJNul?p=catalogue

回答

0

状态 “项目语言” 根本不存在。你称之为“language.talen”。

尝试

function openLanguage() { 
    $state.go("language.talen"); 
    } 
+0

你好老总Stragier感谢您的时间!我收到以下错误。无法从状态'projects'中解析'language.talen' – Fearcoder

+0

您是否尝试过这里提供的解决方案? [链接](http://stackoverflow.com/a/31017768/5239782) 如果是这样,请提供一个plunkr示例,以便我们可以更好地了解您的代码。 –

+0

我添加了一个plunkr解决方案 – Fearcoder