Javascript 角度指令属性-对象属性未定义
我在element指令中定义了一个object属性,它本身在ng repeat指令中定义:Javascript 角度指令属性-对象属性未定义,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我在element指令中定义了一个object属性,它本身在ng repeat指令中定义: <div ng-repeat="element in array"> <my-directive el-sel="{{element}}> <something else> </my-directive> </div> 控制台结果如下: element:"{\"name\":\"a name\",\"href\"
<div ng-repeat="element in array">
<my-directive el-sel="{{element}}>
<something else>
</my-directive>
</div>
控制台结果如下:
element:"{\"name\":\"a name\",\"href\":\"#something\"}"
href: undefined
有人能解释一下这个行为和我做错了什么吗?你把{{element}作为字符串传递-这就是{{variable}的作用
在短期内,这将解决这一问题:
console.log('href: ' + JSON.parse($attrs.elSel).href);
下面是将对象传递给指令的一个简单示例:
<div ng-repeat="element in array">
<my-directive el-sel="{{element}}>
<something else>
</my-directive>
</div>
var-app=angular.module'app',[];
应用程序控制器'MainCtrl',函数$scope{
$scope.something={
名字:“一个名字”,
href:“某处”
};
};
应用程序指令'myDirective',函数{
返回{
限制:'E',
范围:{
埃尔塞尔:'='
},
链接:函数$scope、$element、$attrs{
console.log$scope.elSel
}
}
};
谢谢你,我会尽快接受你的回答,让我再问一个问题,有没有办法从ng repeat传递对象作为参考?因为如果没有大括号,它就不会给你一个例子来编辑我的答案。进一步阅读您是否尝试解析console.log$attrs.elSel;只需检查数据,无论该对象是以字符串形式出现还是以其他数据类型出现。