如何动态更新 angular-ui (bootstrap) 弹出框内容

How to update angular-ui (bootstrap) popover content dynamically

我正在尝试通过 'dacc.getSearchResultHTML()' 函数动态绑定 'uib-popover-title' 来更改弹出窗口的内容,但是更新 'dacc.codeJerarchy.parent' object 只会更改弹出窗口的标题。

我遗漏了什么或者我需要重新定义 HTML 元素吗?这是我暂时更新内容的唯一方法。

谢谢!

<button uib-popover-html="'{{ dacc.getSearchResultHTML(dacc.codeJerarchy.parent) }}'"
popover-title="{{ dacc.codeJerarchy.parent.short }}"
popover-placement="right"
popover-append-to-body="true" type="button"
class="btn btn-sm btn-default">i</button>

//-------------------------------------------

dacc.getSearchResultHTML = function(searchResult) {
    return $sce.trustAsHtml(he.encode(he.escape(searchResult.long)).replace(/\n/g, '<br />'));
};

uib-popover-html 接受一个 angular 表达式,没有必要用双花括号包裹你的函数调用。相反,在 $scope 对象上传入 variable/function。

HTML

<button type="button" class="btn btn-sm btn-default"
    uib-popover-html="dacc.getSearchResultHTML(dacc.codeJerarchy.parent)"
    popover-title="{{ dacc.codeJerarchy.parent.short }}"
    popover-placement="right"
    popover-append-to-body="true"        
    >
    i
</button>

控制器

$scope.dacc = {
    getSearchResultHTML: function(input) {
        ...
        return output;
    }
}