【问题标题】:AngularJS inside AJAX pageAJAX页面内的AngularJS
【发布时间】:2016-03-19 02:49:00
【问题描述】:

我有一个名为 ajaxshell.html 的 shell 文件。这有一个 AngularJS 应用程序,它加载另一个名为 entrypage.html 的页面并使用 $sce 将其呈现为 HTML。

在 entrypage.html 中,我想使用 Angular 进行验证 - 例如,检查某些字段是否已被编辑。但是,无论我将其包含在 2 个页面中的哪个页面中,entrypage.html 似乎都无法找到 Angular(通过使用简单的 ng-repeat 进行测试)。

如何从 entrypage.html 中访问 Angular?

【问题讨论】:

  • 是的,虽然目前我已经删除了 ng-app 和 ng-controller 进行测试,

标签: javascript html angularjs ajax


【解决方案1】:

我会引入 entrypage.html 作为指令的模板,而不是整合的 HTML 片段。如果您需要动态 URL,您可以在声明指令时为 templateUrl 分配一个函数,它可以为您即时组合 URL。然后 Angular 会将该页面视为其自身的有效组件。

【讨论】:

  • 我计划为这个控制器创建多个页面。您的解决方案在这种情况下有效吗?这是糟糕的设计吗?
  • 你能澄清一下吗?你指的是什么控制器?我的第一个想法是这并没有什么问题,但我需要更多细节才能真正回答。
  • ajaxshell.html 中的控制器计划成为我要插入其中的所有页面的控制器。我打算用它来做路由之类的。
  • 您可以这样做,但您可能需要考虑使用不同的控制器来使用相同的功能。请记住,实际的控制器函数只是一个函数变量,您将其作为参数传递给 Angular 的 .controller() 函数。您可以存储该变量并在其他地方重用它。这允许您拥有相同的逻辑,同时允许您调整输入条件(例如模板、解析等)。我不知道$scope 是如何处理嵌套在一个控制器中的,但基于玩this,它实际上看起来不错。
  • 就您提供给不同组件(路由、指令等)的单个控制器而言,一次只有一个使用它,这是完全合法的,并且是预期可重用性的一部分角度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
相关资源
最近更新 更多