Angularjs模式窗口是动态(编程)构建的

Angularjs modal windows dynamically (programmatically) built

本文关键字:编程 构建 动态 模式 窗口 Angularjs      更新时间:2023-09-26

我需要实现一个模式窗口,其内容由JavaScript控制器生成(内容是手风琴/面板的层次树,其结构在接收数据之前是未知的)。

模态的内容是在包含ng-bind-html指令的视图中定义的。

当将其显示为普通页面(即,不是模态页面)时,我会得到与需求相匹配的内容和行为。

我的问题是,我找不到让它作为模态工作的方法。

Angular有什么我不知道的限制吗?

我在视图中的另一个模态中也遇到了同样的问题,但它的内容是使用ng repeat指令构建的。在第二种情况下,当我试图将数据部署到字段中时,我会收到一个错误,指出我试图设置其值的元素是未定义的。这样的尝试似乎发生得太早,DOM还没有准备好。

当试图在模态中使用它时,第二种情况也不起作用。

问题可能在于您在模态中使用的模型。您可能需要确保使用了正确的型号。模式窗口中的范围可能与纯模板中的范围不同。我喜欢通过使用ng-init或ng-if指令来测试事物真正在哪个范围内,并创建一个函数来查看它是否被调用。例如:

HTML模板

<div class="panel" ng-if="scopeCheck">
</div>

控制器

$scope.scopeCheck = function() {
    debugger;  //or console.log('here');
}

如果这不是问题所在,那么我不确定你是否自己创建了这个模态,但如果你是,我建议你可以使用UI Bootstrap中的模态指令,看看它是否能正常工作。