Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度指令中的数据混乱_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 角度指令中的数据混乱

Javascript 角度指令中的数据混乱,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我已经为这个问题挣扎了好几天了 问题是我的角度指令弄乱了我的数据模型 为了简单起见,我在这里创建了一个简单的示例: 角度模块('vt.directives',[]) .directive('personType',[function(){ 返回{ 限制:“A”, 替换:正确, 范围:{ personType:“@” }, 模板:“类:{{pClass}}类型:{{personType}}”, 链接:功能(范围、elm、属性){ console.log(scope.personType); sco

我已经为这个问题挣扎了好几天了

问题是我的角度指令弄乱了我的数据模型

为了简单起见,我在这里创建了一个简单的示例:

角度模块('vt.directives',[]) .directive('personType',[function(){ 返回{ 限制:“A”, 替换:正确, 范围:{ personType:“@” }, 模板:“类:{{pClass}}
类型:{{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">