Angular / UI-Router:访问另一个州的控制器

时间:2014-09-10 02:13:42

标签: angularjs angular-ui-router

基本上,如何在html中访问未命名状态的控制器?我通过循环生成状态,包括我的SPA中的未命名控制器。虽然路线工作正常,但主页ng包括每个州,但显然不会在/ home路线上加载每个州控制器。

这是我想要的一个例子,当我导航到/关于{{thisData}} ='关于数据'正如预期的那样,但我希望$ scope也在具有ng-include的/ home路由上。

<div ng-include="'views/about.html'" ng-controller="the about state's controller"></div>

在我的app.js ..

var routes, setRoutes;

routes = ['home','about','services','clients','articles','media','admin', '404'];

setRoutes = function(route) {
  var state, config;
  state = route;
  config = {
    url: '/' + route,
    templateUrl: 'views/' + route + '.html',
    controller: function($scope, $state){
      $scope.thisData = route + " Data";                
    }
  }
  $stateProvider.state(state, config);
  return $stateProvider;
};

routes.forEach(function(route) {
      console.log(route);
      return setRoutes(route);
  });

1 个答案:

答案 0 :(得分:1)

使用ui-routerng-include ng-controller 工作(按设计,意图)。这些是不同的概念。

基本上,您的某个州将会及时呈现。一个州内可能会有更多观点:

或者可能存在层次结构 - 所以有一次我们可以看到一个孙子状态(&#39; root.list.detail&#39;)及其所有祖先。

以下指出了正确理解ui-router的所有重要资源:

一旦我们确定了所有状态(如上面的问题),我们就可以开始创建链接以导航到这些状态:

// using href
<a href="#/home">home
<a href="#/about">about
// using ui-sref
<a ui-sref="services">services
<a ui-sref="clients">clients

这些将被注入index.html(root doc),其中定义了<div ui-view=""></div>