首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs ui-select2 2 formatSelection格式指令

Angularjs ui-select2 2 formatSelection格式指令
EN

Stack Overflow用户
提问于 2014-07-16 09:38:42
回答 2查看 627关注 0票数 0

我使用ui-select2 2添加多个项(标记模式)。当添加一个项目时,我想在输入中显示一些特殊的ui,所以我想添加一些指令。尝试使用formatSelection格式化输入:

代码语言:javascript
复制
function colorFormat(state) {
   return '<color-selection selections="option.selections"></color-selection>';
}

但该指令并没有进行编译。所以我编译了它:

代码语言:javascript
复制
function colorFormat(state) {
  return $compile('<color-selection selections="option.selections"></color-selection>')(scope);
}

但是现在,这个值是“object object”。该格式似乎正在显示我的结果。那么,我如何格式化指令呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-16 13:55:40

好的,所以formatSelection os并不期望html,而是jqlite/angular。但是它把它转换成字符串。因此,一种解决方案是移除转换,只需追加给定的元素。另一个解决方案是以容器元素作为第二个参数调用formatSelection:

代码语言:javascript
复制
formatSelection(state, container) {
  container.append($compile('bla')(scope));
}

不要返回任何东西,只是附加你的结果。

票数 0
EN

Stack Overflow用户

发布于 2014-07-16 10:18:12

formatSelection期望返回html,而$compile服务将返回对象。在我看来,您需要编译元素并获得html字符串。

尝尝这个。

代码语言:javascript
复制
  var compiledHTML = $compile('<color-selection selections="option.selections"></color-selection>')(scope);
    $timeout(function(){

        var formatString = '';
        for(i=0; i<compiledHTML.length; i++)
            formatString += compiledHTML[i].outerHTML;

        return formatString ;
    },0);

此外,如果它不工作,它将更好,如果你可以创建一个小柱塞或小提琴,可以帮助调试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24777337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档