Javascript 角度指令中的数据混乱
我已经为这个问题挣扎了好几天了 问题是我的角度指令弄乱了我的数据模型 为了简单起见,我在这里创建了一个简单的示例: 角度模块('vt.directives',[]) .directive('personType',[function(){ 返回{ 限制:“A”, 替换:正确, 范围:{ personType:“@” }, 模板:“类:{{pClass}}Javascript 角度指令中的数据混乱,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我已经为这个问题挣扎了好几天了 问题是我的角度指令弄乱了我的数据模型 为了简单起见,我在这里创建了一个简单的示例: 角度模块('vt.directives',[]) .directive('personType',[function(){ 返回{ 限制:“A”, 替换:正确, 范围:{ personType:“@” }, 模板:“类:{{pClass}}类型:{{personType}}”, 链接:功能(范围、elm、属性){ console.log(scope.personType); sco
类型:{{personType}}”, 链接:功能(范围、elm、属性){ console.log(scope.personType); scope.pClass=scope.personType=='male'?'male class':'female class'; } }; }]); 当我单击其中一个添加按钮时,它会向数据模型添加一个以上的人员。问题是指令没有使用正确的数据值。如果单击“Add Anne”,数据看起来就在指令的“外部”,而不是“内部”。它应该根据数据返回正确的类名(和颜色),但添加的雌性显示为蓝色(雄性) 不管你点击多少个按钮,或者点击哪个按钮,只有前两个是蓝色的。其余的是红色的 有什么想法吗
谢谢您使用的track by是错误的,因为您使用的是unshift,并且元素的实际索引位置正在更改。尝试为插入到数组中的每个对象添加一个唯一的id,并通过该id进行跟踪 以下是有效的轨道:
<div style="float: left; height: 140px; width: 200px; border: 1px solid #cccccc; margin-bottom: 20px;" ng-repeat="p in data.persons">
<div style="float: left; height: 140px; width: 200px; border: 1px solid #cccccc; margin-bottom: 20px;" ng-repeat="p in data.persons">