我有这样的东西plunker .我希望我的 View 被传递到指令中的 mapId 填充。然后我想显示该 View 以代替“这是一些内容”。
首先如何将 mapId 传递到 View 中,其次如何在灯箱 div 中显示该 View ?
我知道这有点含糊,但我是 Angular 的新手,所以我不知道这里还需要什么其他信息。
最佳答案
您将无法将 view.html 文件与当前的灯箱代码一起使用。它需要大量修改才能使用 template files and isolate scopes .但是,您可以使用当前代码来实现相同的目的,也许只需添加一个 Controller 来修改范围。
我修改了 plunker 中的 index.html以便它显示 mapId
值(value)。
让我们回顾一下 angular-lightbox 实际上在做什么:
通过只返回一个函数,该指令将完成整个编译过程,然后使用返回的函数作为链接器。然后链接器继续(取决于选项)向 DOM 添加覆盖(灯箱的不透明深色背景),然后将灯箱事件类添加到 div#lightbox
.这div
已经在 DOM 中,但由于 CSS 而隐藏,并且已经由 AngularJS 编译和呈现,因此除了通过相同或子范围级别的双向数据绑定(bind)之外,它无法真正更改。
我的更改做了什么:
我向 div#lightbox
添加了一个绑定(bind)范围变量称为 mapId
并添加了一个 ng-click
到设置 mapId
值的按钮到 1、2 或 3。因此,当您单击按钮时,div#lightbox
被揭示&的新值(value)的值(value)mapId
显示。
鉴于以上可能不是你想要完成的...
让我们谈谈如何去做
首先您需要加载 view.html
以某种方式进入指令。要么只拥有 view.html
内容是指令内的字符串或使用 $templateCache .
然后您需要 $compile来自 view.html
的 HTML ,传入一个新范围,其中包含您想要的值 options
, 然后将其附加到 div#lightbox
.
关于javascript - 如何将 index.html 中的内容放入 view.html 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21803389/