渲染HTML下拉框中Angular.js的方法

渲染HTML下拉框中Angular.js的方法
前言

大家都知道,angualrjs被认为是安全的,和插补指令将滤波器对应的字符串来避免HTML的攻击。但在有些时候,我们需要渲染HTML,例如,实施分层下拉框

代码如下:

VaR的应用= angular.module(的应用
App.controller(控制
无功testlist = { {编号:0,文字:},国家{编号:1,文字:北京},{编号:20,文字:} {编号:3,上海
$范围=值20;
testlist = testlist美元范围;
});

你可以看到,空间的直接呈现。一个简单粗暴的解决办法是修改AngularJS的源代码,不再过滤HTML,在updateoptions AngularJS源代码搜索功能,直接更换相应的脚本
正如您所看到的,空间已经正确地呈现,虽然这个方法很简单,但是更改会影响所有下拉框控件,可能存在HTML攻击,一个令人满意的方法是使用NG绑定HTML来渲染HTML,此时下拉框绑定数据也需要更改,相应的代码如下所示:

VaR的应用= angular.module(的应用
App.controller(控制器
无功testlist = { {编号:0,文字:},国家{编号:1,文字:北京},{编号:20,文字:} {编号:3,上海
对于(var i = 0;i < testlist.length;i++)
{
我testlist { }。文本= sce.trustashtml美元(testlist {我}文本);
}
美元范围。值= 20'; / /注意,这里必须是一个字符串类型,否则无法获得选定的值
testlist = testlist美元范围;

});
它不是用于消费的性能数据量,下拉框,完全可以满足需要,但如果数据稍大,浏览器会出现明显的卡顿现象,这个时候你可以编写实现下拉框的指令,代码如下:

{ { } }
VaR的应用= angular.module(的应用
App.controller(控制器
无功testlist = { {编号:0,文字:},国家{编号:1,文字:北京},{编号:20,文字:} {编号:3,上海
$范围=值20;
testlist = testlist美元范围;
});
App.directive (dropDownList
返回{
限制:e,
经营范围:{
dlist:=,
dselectvalue:=
},
链接:功能(范围、元素、属性){
变量=文档
VaR值=属性{价值}; / /值对应的选项
var text =属性{文本};
选择以价值= scope.dselectvalue VaR;
element.on(变化
VaR SelectedIndex = this.selectedindex;
范围($)(函数(){())
dselectvalue = SelectedIndex范围;
});
})

对于(var i = 0;i < scope.dlist.length;i++)
{
期权= d.createelement(选项);
期权价值=范围。dlist {我} {价值};
选择。innerHTML =范围。dlist {我} {文字};
如果(选择以价值= =期权价值。)
{
option.setattribute(选择
}
element.append(选项);
}
},
模板,
替换:真

};
});
这样可以更完美地达到相应的功能,是更好的选择。

总结

以上就是本文的全部内容。希望本文的内容能给大家的学习工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部