基本上,如何在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);
});
答案 0 :(得分:1)
使用ui-router
和ng-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>
。