Javascript 访问附加html中的ng重复数据
当使用自定义指令单击模型项时,我正在将一些HTML附加到该项中 我的代码:Javascript 访问附加html中的ng重复数据,javascript,angularjs,angularjs-scope,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Scope,Angularjs Ng Repeat,当使用自定义指令单击模型项时,我正在将一些HTML附加到该项中 我的代码: <div appenddata> <div ng-repeat="model in models"> <label ng-bind="model.name"></label> </div> <div> directive('appenddata', function($compile) { // click h
<div appenddata>
<div ng-repeat="model in models">
<label ng-bind="model.name"></label>
</div>
<div>
directive('appenddata', function($compile) {
// click handlers
$(element).after("<p ng-bind='model.name'></p>);
$compile(html)(scope);
});
指令('appenddata',函数($compile){
//单击处理程序
$(element).after(“”
);
$compile(html)(范围);
});
是否可以访问此附加html中的模型项数据?如注释所述,您确实不应该自己将数据注入DOM。如果您需要更改DOM中显示的数据量,请使用ng repeat上的筛选器
此外,ng重复中的250个项目不足以降低页面速度,除非每个项目上都有一些非常繁重的处理。我建议使用类似的方法来分析您的应用程序,看看是什么导致其速度变慢。是的,有可能,我最近问了一些类似的问题: 有人建议采用这一准则:
angular.element($("#canvas")).injector().invoke(function($compile) {
var scope = angular.element($("#canvas")).scope();
var compiledImg = $compile('<img id="editImage" ng-src={{ImageToEdit}}>')(scope);
$("#canvas").replaceWith(compiledImg);
});
angular.element($(“#画布”).injector().invoke(函数($compile){
var scope=angular.element($(“#画布”)).scope();
var compiledImg=$compile(“”)(范围);
$(“#画布”).replace为(compiledImg);
});
你真的应该让控制器来驱动你的视图。单击事件应该修改控制器中的数据,视图应该相应地对数据更改做出反应,这将使你的生活更轻松相信我。使用$compile、$eval之类的东西只有非常少的用例。我有大约250个项目。当我加载所有项目时应用程序在设备中运行速度非常慢。所以我想尝试这种方法,以便只在单击时填充DOM。看看它是如何工作的,它可能会给你一些想法。