我使用ui-select2 2添加多个项(标记模式)。当添加一个项目时,我想在输入中显示一些特殊的ui,所以我想添加一些指令。尝试使用formatSelection格式化输入:
function colorFormat(state) {
return '<color-selection selections="option.selections"></color-selection>';
}但该指令并没有进行编译。所以我编译了它:
function colorFormat(state) {
return $compile('<color-selection selections="option.selections"></color-selection>')(scope);
}但是现在,这个值是“object object”。该格式似乎正在显示我的结果。那么,我如何格式化指令呢?
发布于 2014-07-16 13:55:40
好的,所以formatSelection os并不期望html,而是jqlite/angular。但是它把它转换成字符串。因此,一种解决方案是移除转换,只需追加给定的元素。另一个解决方案是以容器元素作为第二个参数调用formatSelection:
formatSelection(state, container) {
container.append($compile('bla')(scope));
}不要返回任何东西,只是附加你的结果。
发布于 2014-07-16 10:18:12
formatSelection期望返回html,而$compile服务将返回对象。在我看来,您需要编译元素并获得html字符串。
尝尝这个。
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);此外,如果它不工作,它将更好,如果你可以创建一个小柱塞或小提琴,可以帮助调试。
https://stackoverflow.com/questions/24777337
复制相似问题