我做了一个自定义指令,ng-repeats
里面有两个。一个ng-repeat
嵌套在另一个内部。我得到了代码,它在 chrome 中运行良好,但在 iPad 和 iPhone 上运行缓慢。
有 10 个部分,每个部分 5 行,在滚动和更改绑定时需要非常快。我认为减速来自通过绑定的所有循环,但用户输入时只需要更改一个数组。页面加载后,其余的绑定永远不会改变。
所以我试图找出一种方法来加载嵌套的无序列表,同时只绑定一个变量。这是我的指令的伪代码。
.directive('myDirective', function($compile) {
return {
restrict: 'A'
link: function(scope, elm, attrs) {
outerList = '<ul><li>statically generated content that does not change'
outerList += '<ul><li ng-bind="I only need to bind one thing"><li></ul>'
outerList += < /ul>'
elm[0].innerHTML = outerList
}
}
});
如您所见,我正在尝试生成 html 内容,然后使用 innerHTML 将其插入。问题是ng-bind
当我这样做时它不起作用。我又试了$compile
一次,但这并没有改变任何东西。
有没有人有更好的方法?我不在乎解决方案有多么可怕,我只是真的需要应用程序的这一部分超级快。主要的是我不想要ng-repeat
,除非有办法让它在加载时做它的事情,然后再不循环任何东西。
我想以最 Angular 的方式做到这一点,但我意识到我可能不得不做一些完全违背 Angular 哲学的事情