angularjs :( bootstrap)popover指令。怎么关闭它?

时间:2014-05-14 19:55:10

标签: javascript angularjs twitter-bootstrap angularjs-directive angularjs-scope

我有一个与模式相关的问题。我建立了一个指令" load"内容到引导弹出窗口。

HTML:

<span data-ng-show="user.provider === 'local'" class="label label-warning" data-popover="" data-placement="bottom" data-content-selector="#passwordchangeform">change password</span>
<div id="passwordchangeform" style="display:none;">
    <h3>Change password</h3>
    <h4>(Not finished yet!)</h4>
    <form>
        Old password:
        <input type="text" ng-model="username" name="text"/><br/>
        New password:
        <input type="text" ng-model="password1" name="text"/><br/>
        New password again:
        <input type="text" ng-model="password2" name="text"/><br/>
        <input type="button" data-ng-click="login()" value="login"/>
    </form>
</div>

指令:

angular.module('app').directive('popover', function ($compile) {
    return {
        restrict: 'A',
        link: function (scope, el, attrs) {
            var content;

            if (attrs.content) {
                content = attrs.content;
            } else {
                content = $compile("<div>" + $(attrs.contentSelector).html() + "</div>")(scope);
            }

            $(el).popover({
                trigger: 'click',
                html: true,
                content: content,
                placement: attrs.placement
            });
        }
    };
});

在我的控制器中,我实现了函数login() 让我们在控制器login()函数中说我得到了对HTTP / POST的成功响应 实际关闭弹出窗口的最佳做法是什么?我能想到&#34;肮脏的黑客&#34;迫使关闭,但我想这可以以更合适的方式完成......

&#34;问题&#34;我可能可能与我在指令中使用$ compile将内容绑定到控制器范围这一事实有关,因此我无法从链接函数中关闭它。

谢谢,

桑德

0 个答案:

没有答案