0

我有以下查询,它遍历一个字符串数组wikiContent。一旦我显示了数组中的前三个值(句子),我想添加一个链接,More当你点击它时,它会显示其余的句子。

这是我所拥有的(这是在使用 的AJAX请求中$http):

var opt = "<span>";
for(var j = 0; j < wikiContent.length; j++){
    opt += wikiContent[j];
    if(j === 2){
        opt += "</span><span ng-hide='!show'>";
    }
}
opt += " ... <a href=\"\" ng-click='show=!show'>More</a>";
opt += "</span>";

$rootScope.text = opt;

当我点击 时More,它会做两件事:

  • 它重新加载页面。
  • 它不会切换文本

我能做些什么来解决这两个问题?

这是HTML:

<div class="panel-body" ng-bind-html="toHtml(text)"></div>

这是toHtml()功能:

$scope.toHtml = function(string){
    return $sce.trustAsHtml(string);
};
4

1 回答 1

0

阅读文档后,Angular 提到使用控制器中的 dom 是个坏主意:

注意:此错误通常意味着您正在从控制器访问 DOM,这通常表明编码风格不佳,违反了关注点分离。

所以,我所做的是创建一个包含目录并将包含的东西放在那里,现在我正在使用ng-include而不是在控制器中构建 dom 项。

于 2015-06-22T17:18:03.450 回答