V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sunhk25
V2EX  ›  问与答

angular,ngDialog 插件如何调用动态生成的模板。

  •  
  •   sunhk25 · 2015-04-16 08:44:25 +08:00 · 2943 次点击
    这是一个创建于 3508 天前的主题,其中的信息可能已经有所发展或是发生改变。
    哪位用过 ngDialog 插件,想通过 ng-template 来弹出模板内容
    动态生成的模板,通过ID无法取得template。
    静态直接指定的话,没有问题,通过 model 动态设定 ID 的话,怎么弹出页面本身??
    在线 demo》》 http://jsfiddle.net/akgdxhd0/24/
    第 1 条附言  ·  2015-04-16 14:51:35 +08:00
    最后的解决办法是通过$rootScope,$templateCache
    http://jsfiddle.net/akgdxhd0/28/
    初学angular,不知道怎么搞更好的解决方案。。。
    第 2 条附言  ·  2015-04-17 13:52:37 +08:00
    修改rootScope,改成向ngDialog里传变量
    http://jsfiddle.net/akgdxhd0/37/
    7 条回复    2015-04-17 13:53:23 +08:00
    hahastudio
        1
    hahastudio  
       2015-04-16 10:00:11 +08:00   ❤️ 1
    直接把 template string 传过去?
    https://github.com/likeastore/ngDialog#plain-boolean
    lingyired
        2
    lingyired  
       2015-04-16 10:02:52 +08:00   ❤️ 1
    模板本身就是用来动态生成 DOM 的,当你需要动态生成模板的时候,就需要考量你们的设计了- -

    关于你这个问题,问题出在 $templateCache 上面(自行谷歌这个)。
    sunhk25
        3
    sunhk25  
    OP
       2015-04-16 10:16:33 +08:00
    @hahastudio
    跟我最开始想的一样,但是模板中也有一堆ng绑定,所以如果能调用动态生成的模板最理想。。
    livelazily
        4
    livelazily  
       2015-04-16 13:19:22 +08:00   ❤️ 1
    看了下源代码: https://github.com/likeastore/ngDialog/blob/master/js/ngDialog.js#L420
    插件应该支持 templateUrl 选项
    用法应该和 directive 里的差不多:
    https://docs.angularjs.org/api/ng/service/$compile#-templateurl-
    sunhk25
        5
    sunhk25  
    OP
       2015-04-16 14:53:39 +08:00
    @lingyired
    谢谢,templateCache确实是解决这个问题的。。。
    但是不知道我的解决方案里,$rootScope的使用方法时候合适
    livelazily
        6
    livelazily  
       2015-04-16 20:13:08 +08:00 via Android
    @sunhk25 rootScope 不应该用在这里,应该把外部的$scope 通过 options 里的 scope 传入 ngDialog ,再从 ngDialog 的 controller 里通过 $scope.$parent 获取
    sunhk25
        7
    sunhk25  
    OP
       2015-04-17 13:53:23 +08:00
    @livelazily
    谢谢指教,已经改正
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5216 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:57 · PVG 13:57 · LAX 21:57 · JFK 00:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.