我刚刚开始使用 angularJS 并努力为我正在尝试做的事情找出合适的架构。我有一个单页应用程序,但URL 应始终保持不变;我不希望用户能够导航到根目录之外的任何路由。在我的应用程序中,有一个主 div 需要托管不同的视图。当访问新视图时,我希望它接管主 div 中的显示。以这种方式加载的视图可以丢弃或保留在 DOM 中隐藏 - 我有兴趣了解每个视图如何工作。
我想出了一个粗略的工作示例来说明我正在尝试做的事情。 请参阅此 Plunk 中的工作示例。 基本上,我想将 HTML 动态加载到 DOM 中,并使标准的 angularJS 控制器能够连接到新的 HTML。有没有比使用我这里的自定义指令并使用 $compile() 连接到 angular 更好/更简单的方法?也许有类似路由器的东西,但不需要更改 URL 即可运行?
这是我目前使用的特殊指令(取自另一个 SO 帖子):
// Stolen from: http://stackoverflow.com/questions/18157305/angularjs-compiling-dynamic-html-strings-from-database
myApp.directive('dynamic', function ($compile) {
  return {
    replace: true,
    link: function (scope, ele, attrs) {
      scope.$watch(attrs.dynamic, function(html) {
        if (!html) {
            return;
        }
        ele.html((typeof(html) === 'string') ? html : html.data);
        $compile(ele.contents())(scope);
      });
    }
  };
});
谢谢,
安迪