Javascript 角动态元件生成

Javascript 角动态元件生成,javascript,angularjs,Javascript,Angularjs,我希望通过使用模态作为示例来回答一个架构问题。所以对于初学者,请不要用“使用引导的模式服务”来回答这个问题 基本上,我想知道当一个人需要html在稀薄的空气中出现,并对其应用组件或指令时,“角度方式”是什么。数据请求错误模式就是一个很好的例子:例如,如果一个组件试图加载某种数据,而数据返回时出现某种错误,我希望数据服务能够以编程方式触发模式 这就引出了一个问题:在这种情况下,模板去了哪里?除非我弄错了,否则不会为不在页面上的标记编译指令,这从体系结构的角度来看是可取的(例如,我不希望页面上的代码

我希望通过使用模态作为示例来回答一个架构问题。所以对于初学者,请不要用“使用引导的模式服务”来回答这个问题

基本上,我想知道当一个人需要html在稀薄的空气中出现,并对其应用组件或指令时,“角度方式”是什么。数据请求错误模式就是一个很好的例子:例如,如果一个组件试图加载某种数据,而数据返回时出现某种错误,我希望数据服务能够以编程方式触发模式

这就引出了一个问题:在这种情况下,模板去了哪里?除非我弄错了,否则不会为不在页面上的标记编译指令,这从体系结构的角度来看是可取的(例如,我不希望页面上的代码不太可能被使用,就像在错误模式不太常见的情况下一样)。服务必须附加到控制器,在相同的情况下,除非我在页面上有标记,否则不会添加控制器

那么,当页面加载时,激活一个基本上不存在的组件的模式是什么?理想情况下,我希望在用户体验需要之前完全忽略模态组件。到目前为止,ng if语句,通过在页面某处包含一个div,似乎是最好的方法。但即使在技术上,这也是“混乱的”,因为您将标记添加到只支持“潜在”案例的页面

最好能够从某个服务、控制器或指令中广播“TriggerErrorModel”事件,向其传递一些参数,并让应用程序启动模式组件。注意,在其他情况下,这可能会起作用,因此请将其视为一个更一般的问题


想法?

我知道你说过,你不想被送到bootstrap的模式服务。。然而查看源代码可以提供很多关于如何执行此操作的信息

基本上,您可以使用以下方法添加HTML元素:

var el = angular.element('<div class="new-thing"><my-directive></my-directive></div>')
然后通过以下方式进行编译:

var compiled = $compile(el)($scope);

使用引导模式服务;]它做的正是你想要的,而且做得很好。如果您需要详细信息,请查看源代码。您没有阅读帖子吗?这是一个架构问题,明确地说不要给出准确的答案。好吧,但你会把这个逻辑放在哪里?@dudewad放在哪里取决于你在做什么(可以用于控制器、服务,甚至是指令)。你的问题很含糊,所以我故意给了一个含糊的答案。我不想做任何假设。如果你有更具体的例子,我很乐意帮助你。
var compiled = $compile(el)($scope);