7
我有一个情况,我有一个角控制器,它基本上只是根据点击事件加载html模板。但是,这些模板由自己的控制器管理。这导致控制器是内原来的控制器,这似乎只是错误:在另一个控制器内的角ng-include控制器
<div ng-controller="WindowCtrl" id="focus-window">
<button ng-click="openProjects()">Show Projects</button>
<button ng-click="openTasks()">Show Tasks</button>
<div ng-include src="template.url"></div>
</div>
controllers.js
.controller('WindowCtrl', function ($scope) {
$scope.templates = [
{
name: 'tasks',
url: 'partials/_tasks.html'},
{
name: 'projects',
url: 'partials/_projects.html'}
];
$scope.template = $scope.templates[0];
$scope.openProjects = function() {
$scope.template = $scope.templates[1];
};
$scope.openTasks = function() {
$scope.template = $scope.templates[0];
};
});
_projects.html
<div ng-controller="ProjectsCtrl">
<h2>My Projects</h2>
...
</div>
_tasks.html
<div ng-controller="TasksCtrl">
<h2>My Tasks</h2>
...
</div>
我的问题是 - 什么是什么,我想,而不会引起冲突的范围做了最好的解决方案?
任何帮助非常感谢。
尽管...如果您不想将这些内容留在同一页面上,也可以考虑将每次点击路由到不同的网址,因为Angular看起来好像用户在同一页面上。 – user3043124
问题是我已经有路由做其他动态负载的内容。在这里这样做并跟踪其他部分的状态似乎会很快变得非常复杂。如果嵌套控制器不是罪*本身*然后我会去那里,并保持'WindowCtrl'尽可能简单。 –